2017-04-02 114 views
0

我已經將這個庫添加到libs目錄中 osmdroid jar文件中。 slf4j jar文件。爲什麼OSM中的地圖不能在android studio中顯示?

我也跟着教程https://androidcookbook.com/Recipe.seam?recipeId=2521 但地圖沒有顯示,我不知道發生了什麼 enter image description here

這是我MainAcitvity.java

package com.example.pc_parinussa.osm; 

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

import org.osmdroid.tileprovider.tilesource.TileSourceFactory; 
import org.osmdroid.util.GeoPoint; 
import org.osmdroid.views.MapController; 
import org.osmdroid.views.MapView; 
import org.osmdroid.views.overlay.ScaleBarOverlay; 

public class MainActivity extends Activity { 
    private MapView   mMapView; 
    private MapController mMapController; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     mMapView = (MapView) findViewById(R.id.mapview); 
     mMapView.setTileSource(TileSourceFactory.MAPQUESTOSM); 
     mMapView.setBuiltInZoomControls(true); 
     mMapController = (MapController) mMapView.getController(); 
     mMapController.setZoom(13); 
     GeoPoint gPt = new GeoPoint(51500000, -150000); 
     mMapController.setCenter(gPt); 
    } 
} 

我activity_main.xml中

<?xml version="1.0" encoding="utf-8"?> 
<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:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:id="@+id/mapview"> 
    </org.osmdroid.views.MapView> 

</LinearLayout> 

我的gradle

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 25 
    buildToolsVersion "25.0.2" 
    defaultConfig { 
     applicationId "com.example.pc_parinussa.osm" 
     minSdkVersion 15 
     targetSdkVersion 25 
     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:25.2.0' 
    compile 'com.android.support.constraint:constraint-layout:1.0.2' 
    testCompile 'junit:junit:4.12' 
    compile files('libs/osmdroid-android-4.0.jar') 
} 
+0

可以刪除'編譯文件(「庫/'對了......你已經編譯 –

+0

所以它只是編譯osmodroid? –

+0

不,我是說'編譯fileTree('已經抓取所有的jar文件,所以我不需要爲你的JAR文件添加額外的行 –

回答

0

看起來你沒有設置你的用戶代理。嘗試通過設置它:

Configuration.getInstance().setUserAgentValue(...)

如:

Configuration.getInstance().setUserAgentValue(getPackageName())

+0

Wheere我設置用戶代理?它在MainActivity中嗎? –

+0

是的,在創建你的'MapView'對象之前設置它。 – scai

+0

配置中的getInstance()顯示'無法解析符號'。發生什麼事? –

相關問題