使用百度地图SDK出现的问题及解决方法
1. 第一个错误信息如下:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.baidumaptest/com.example.baidumaptest.MainActivity}: java.lang.IllegalStateException: you have not supplyed the global app context info from SDKInitializer.initialize(Context) function.
解决方法是在onCreate()方法中加入语句:SDKInitializer.initialize(this.getApplication()); 这条语句要放在setContentView()方法前面,如onCreate()方法如下:
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); SDKInitializer.initialize(this.getApplication()); //加入这条语句 Intent intent = getIntent(); if (intent.hasExtra("x") && intent.hasExtra("y")) { Bundle b = intent.getExtras(); LatLng p = new LatLng(b.getDouble("y"), b.getDouble("x")); mapView = new MapView(this, new BaiduMapOptions().mapStatus(new MapStatus.Builder().target(p).build())); } else { mapView = new MapView(this, new BaiduMapOptions()); } setContentView(mapView); mBaiduMap = mapView.getMap(); }
2. 出现下面的错误
java.lang.UnsatisfiedLinkError: Native method not found: com.baidu.platform.comjni.map.commonmemcache.JNICommonMemCache.Create:()J
解决方法是:在build.gradle加入
android { ...... sourceSets { main { jniLibs.srcDirs = ['libs'] } } }
其中那些.so文件都放在libs目录下:
3. 定位服务的实现
具体参考如下地址:
http://blog.csdn.net/crazy1235/article/details/43898451
参考博客: