百度地图使用之初始化问题
下载了百度地图demo并在手机上成功运行,接下来就像自己写一下试试。
第一步:创建并配置工程(AS 加入jar包和so文件)
第二步:在AndroidManifest中添加开发密钥、所需权限等信息;
(1)在application中添加开发密钥;(2)添加所需权限;
第三步,在布局xml文件中添加地图(<com.baidu.mapapi.map.MapView />)
第四步,在应用程序创建时初始化 SDK引用的Context 全局变量:(自己建了一个demoapplication ,同时在manifest中name属性中进行配置)
第五步,创建地图Activity,管理地图生命周期;
运行之后,却报错:android.view.InflateException: Binary XML file line #90: Error inflating class com.baidu.mapapi.map.MapView
以前好像遇到过,应该是初始化的问题
百度了一下,所列举的一些方法都试过了(在demoapplication 加入初始化(在application中添加 地图组件的初始化 代码
SDKInitializer.initialize(this);),so文件拷入项目,自己都加了,还是不行,仍然报错)
sourceSets {
main {
jniLibs.srcDir(['libs'])
}
}
结合已经成功的项目,在app 的build.gradle中加入以上这段话,程序成功运行,初步估计是因为自己在导入so的过程中没有新建jniLibs以放so文件,而是直接放入project模式下的libs文件夹下。再次新建一个工程测试一下。
再次测试的结果就是:出现此错误的原因就是导入so文件的问题。正确导入方式:进入project模式下,在src/main下新建jniLibs文件夹(directory),把所有的so文件放入次文件夹下;然后把jar包放入libs文件夹下,然后其他按照步骤来就完全可以了。
进行第三次测试:以上方法完全可行,算是解决一个问题了。