使用百度地图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

参考博客:

http://blog.csdn.net/u011233181/article/details/38151451

http://blog.csdn.net/xiaojian90/article/details/49895347

原文地址:https://www.cnblogs.com/blue163/p/5079243.html