Java android打开街道地图不显示地图

问题描述:

我在API 22上有一些问题,但它在API 23上效果不错我没有看到地图,我只能看到我放置的标记。它的旧版本的Android它的作品。Java android打开街道地图不显示地图

在日志中我有:

Thread-27428(ApacheHTTPLog):isSBSettingEnabled false 
Thread-27428(ApacheHTTPLog):isShipBuild true 
Thread-27428(ApacheHTTPLog):getDebugLevel 0x4f4c 
Thread-27428(ApacheHTTPLog):Smart Bonding Setting is false 
Thread-27428(ApacheHTTPLog):SmartBonding Setting is false, SHIP_BUILD is true, log to file is false, DBG is false, DEBUG_LEVEL (1-LOW, 2-MID, 3-HIGH) is 1 

AndroidOpenStreetMapViewActivity.java

public class AndroidOpenStreetMapViewActivity extends Activity { 

    private MapView myOpenMapView; 
    private MapController myMapController; 

    ArrayList<OverlayItem> anotherOverlayItemArray; 

    /** 
    * Called when the activity is first created. 
    */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     myOpenMapView = (MapView) findViewById(R.id.openmapview); 
     myOpenMapView.setBuiltInZoomControls(true); 
     myMapController = (MapController) myOpenMapView.getController(); 
     myMapController.setZoom(2); 
      //--- Create Another Overlay for multi marker 
     anotherOverlayItemArray = new ArrayList<>(); 
     anotherOverlayItemArray.add(new OverlayItem(
       "0, 0", "0, 0", new GeoPoint(0, 0))); 
     anotherOverlayItemArray.add(new OverlayItem(
       "US", "US", new GeoPoint(38.883333, -77.016667))); 
     anotherOverlayItemArray.add(new OverlayItem(
       "China", "China", new GeoPoint(39.916667, 116.383333))); 
     anotherOverlayItemArray.add(new OverlayItem(
       "United Kingdom", "United Kingdom", new GeoPoint(51.5, -0.116667))); 
     anotherOverlayItemArray.add(new OverlayItem(
       "Germany", "Germany", new GeoPoint(52.516667, 13.383333))); 
     anotherOverlayItemArray.add(new OverlayItem(
       "Korea", "Korea", new GeoPoint(38.316667, 127.233333))); 
     anotherOverlayItemArray.add(new OverlayItem(
       "India", "India", new GeoPoint(28.613333, 77.208333))); 
     anotherOverlayItemArray.add(new OverlayItem(
       "Russia", "Russia", new GeoPoint(55.75, 37.616667))); 
     anotherOverlayItemArray.add(new OverlayItem(
       "France", "France", new GeoPoint(48.856667, 2.350833))); 
     anotherOverlayItemArray.add(new OverlayItem(
       "Canada", "Canada", new GeoPoint(45.4, -75.666667))); 

     ItemizedIconOverlay<OverlayItem> anotherItemizedIconOverlay 
       = new ItemizedIconOverlay<OverlayItem>(
       this, anotherOverlayItemArray, null); 
     myOpenMapView.getOverlays().add(anotherItemizedIconOverlay); 
     //--- 

     //Add Scale Bar 
     ScaleBarOverlay myScaleBarOverlay = new ScaleBarOverlay(this); 
     myOpenMapView.getOverlays().add(myScaleBarOverlay); 
    } 
} 
+0

下一次请注明您所使用的库,在这种情况下'osmdroid'。我将它添加到您的标签。 – scai

+0

和什么版本的osmdroid。 – spy

+0

@spy:'osmdroid-android',版本:'4.2' –

我补充检查WRITE_EXTERNAL_STORAGE当我同意它的工作好

你可能需要从用户请求运行权限如果目标API是23或更高。见样品osmdroid应用为例这么做这里

https://github.com/osmdroid/osmdroid/blob/master/OpenStreetMapViewer/src/main/java/org/osmdroid/intro/PermissionsFragment.java

或readthe Android的莅临指导这一这里 https://developer.android.com/training/permissions/requesting.html