Плитки OSMdroid не загружаются из-за java.net.UnknownHostException - PullRequest
0 голосов
/ 15 мая 2018

Я в настоящее время разрабатываю приложение для Android, и мне нужно импортировать и использовать OpenStreetMap. По этой причине я использую библиотеку osmdroid 6.0.1. К сожалению, когда я запускаю приложение, плитки не загружаются из-за java.net.UnknownHostException. Вот что я получаю в результате как на эмуляторе, так и на своем смартфоне при запуске приложения: Эмулятор - Скриншот приложения

Это исключение, которое постоянно возникает при перемещении карты или увеличении и уменьшении масштаба.

W/OsmDroid: UnknownHostException downloading MapTile: /0/0/0 : java.net.UnknownHostException: Unable to resolve host "a.tile.openstreetmap.org": No address associated with hostname
I/OsmDroid: Tile loader can't continue: /0/0/0
I/System.out: (HTTPLog)-Static: isSBSettingEnabled false
I/System.out: (HTTPLog)-Static: isSBSettingEnabled false
W/OsmDroid: UnknownHostException downloading MapTile: /0/0/0 : java.net.UnknownHostException: Unable to resolve host "b.tile.openstreetmap.org": No address associated with hostname
I/OsmDroid: Tile loader can't continue: /0/0/0
I/System.out: (HTTPLog)-Static: isSBSettingEnabled false
I/System.out: (HTTPLog)-Static: isSBSettingEnabled false

Это AndroidManifest.xml :

<?xml version="1.0" encoding="utf-8"?>

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".MapActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

Это моя activity_map.xml :

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<org.osmdroid.views.MapView
    android:id="@+id/map"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    /></LinearLayout>

А это MapActivity.java :

import android.content.Context;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.support.v7.app.AppCompatActivity;

import org.osmdroid.api.IMapController;
import org.osmdroid.config.Configuration;
import org.osmdroid.tileprovider.tilesource.TileSourceFactory;
import org.osmdroid.util.GeoPoint;
import org.osmdroid.views.MapView;

public class MapActivity extends AppCompatActivity {
MapView map = null;
@Override public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Context ctx = getApplicationContext();
    Configuration.getInstance().load(ctx, PreferenceManager.getDefaultSharedPreferences(ctx));
    setContentView(R.layout.activity_map);

    map = (MapView) findViewById(R.id.map);
    map.setTileSource(TileSourceFactory.MAPNIK);
    IMapController mapController = map.getController();
    GeoPoint startPoint = new GeoPoint(48.8583, 2.2944);
    mapController.setCenter(startPoint);
}
}

У вас есть какие-либо подсказки, в чем может быть проблема?

Заранее спасибо!

EDIT:

Код неожиданно сработал. Я ничего не изменил. Однажды я запустил приложение, и все плитки загрузились и появились. Я предполагаю, что проблема была с сетью или, возможно, разработчики исправили ошибку в osmdroid.

...