实施OpenStreetMap的错误

问题描述:

我想在android studio中实现OpenStreetMap。我成功添加了如下所示的库。实施OpenStreetMap的错误

enter image description here

这是我的MainActivity:

package com.example.re.osm; 

import org.osmdroid.views.MapController; 
import org.osmdroid.views.MapView; 

import android.app.Activity; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 

import com.example.harjotkaur.osm.R; 

    public class MainActivity extends Activity { 

     private MapView myOpenMapView; 
     private MapController myMapController; 

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

      myOpenMapView = (MapView)findViewById(R.id.openmapview); 
      myOpenMapView.seharjotkaurtBuiltInZoomControls(true); 
      myMapController = myOpenMapView.getController(); 
      myMapController.setZoom(4); 
     } 

    } 

这是我的build.gradle文件:

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 26 
    buildToolsVersion "26.0.0" 
    defaultConfig { 
     applicationId "com.example.re.osm" 
     minSdkVersion 15 
     targetSdkVersion 26 
     versionCode 1 
     versionName "1.0" 
     testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

dependencies { 
    compile fileTree(include: ['*.jar'], dir: 'libs') 
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { 
     exclude group: 'com.android.support', module: 'support-annotations' 
    }) 
    compile 'com.android.support:appcompat-v7:26.+' 
    compile 'com.android.support.constraint:constraint-layout:1.0.2' 
    testCompile 'junit:junit:4.12' 
    compile files('libs/slf4j-android-1.5.8.jar') 
compile files('libs/osmdroid-android-3.0.8.jar') 

} 

这是我的清单文件:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.re.osm" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk android:minSdkVersion="10" /> 
    <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:icon="@drawable/ic_launcher" 
     android:label="OSM" > 
     <activity 
      android:name=".MainActivity" 
      android:label="OSM" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

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

</manifest> 

但是当我运行应用程序时,我只能看到小矩形而不看图。 我应该如何解决这个问题?我应该遵循哪些步骤?

任何想法都赞赏?

感谢

+1

当前osmdroid库的版本是5.6.5?可能五岁。 –

+0

我无法下载5.6.5 osmdroid库。它带我到这个页面:https://jar-download.com/explore-java-source-code.php?a = osmdroid-geopackage&g = org.osmdroid&v = 5.6.5&downloadable = 0 我应该使用哪个版本? – Thomas

+0

按照osmdroid页面上的说明:https://osmdroid.github.io/osmdroid/并使用gradle依赖关系。如果你不能使用gradle,你可以在这里下载:https://github.com/osmdroid/osmdroid/releases –

更换

import com.exercise.OpenStreetMapView.R; 

这一点:你为什么要这么用古代版本(3.0.8)

import com.example.re.osm.R; 
+0

我用导入语句更新了我的问题。我应该改变什么? – Thomas

+0

@Thomas我编辑了我的答案。你试过了吗?如果它不起作用,请在问题中添加包导入。 – waleedsarwar86