你知道吗?我就导入个SDK就花了2天时间,因为百度根本搜不到啊,当我导入成功的时候兴奋的想把楼给拆了。
这里不讲申请密钥和开发版发布版SHA1的问题,百度一搜一箩筐到处都是,申请密钥和开发版发布版SHA1等问题只会导致写的代码没办法实现定位和导航等功能,但是导包问题直接决定编译是否通过。这里就讲一点自己的经历,百度搜不到的经验
关于开发版和发布版SHA1也可以看我另一篇博客https://blog.csdn.net/qq_34115899/article/details/80455874
========================================
如果你导入导航SDK成功,那么导入比如
import com.baidu.navisdk.adapter.impl.BaiduNaviManager;
之类的包是可以的,
BaiduNaviManager.getInstance()....按了点之后有提示就是证明SDK添加成功
如果发现上面的包加上去是红色的,发现根本没有这个包,那么你就没有导入成功!
==============================================================
官方文档纯属见鬼,只有工作经验的人有过经历的人才看得懂,完全不是写给平民小白看的
来,先和我一样干了这杯小白的酒,默默留下了没技术泪水!!
先从百度定位SDK入手,请耐心看!!!
我的下载是定位包加上驾车导航(含TTS)
然后解压:
这个libs就是定位所需SDK,这一部分很简单,百度搜的到
就是将里面的BaiduLBS_Android.jar放在app目录下的libs目录,复制粘贴就可以,如果app目录下没libs,那就创建一个粘贴进去就可以啦~
接着在src/main目录下右击->New->Directory,再创建一个jniLibs目录
这里就是专门用来放so文件的
其余的arm64-v8a,armeabi,armeabi-v7a,x86,x86_64复制粘贴到jniLibs就可以啦
====================================================
前面都是小儿科,大家都会,百度也搜得到,到这一步导入定位的SDK就完成了。
经过我的2天的多次尝试,要解决在此基础上导入BaiduNavi_AndroidSDK文件夹里面的内容就不简单了
需要四步:
步骤一:
在项目文件夹打开settings.gradle文件,就是最外层的那个
修改里面的内容为
include ':app', ':onsdk_all', ':NaviTts'
步骤二:
下载官方示例代码:
这里的最新版本是BaiduNavi_AndroidSDK_v4.1.0_Sample
打开目录到BaiduNavi_AndroidSDK_v4.1.0_Sample\BaiduNavi_AndroidSDK_v4.1.0_Sample\ONSDKDemo
然后看到
把这2个目录复制粘贴到自己工程的最外层
步骤三:
还记得上面讲的吗?
打开导航SDK,里面有jniLibs目录,把这个目录下的内容复制到自己刚刚在src/main下面创建的jniLibs目录下,因为是不同文件,所以不会有覆盖提示的。如图
然后再把除了armeabi以外的'x86', 'x86_64', 'armeabi-v7a', 'arm64-v8a'全部删掉,因为后面编译的时候可能会出现错误,删掉之后就能正常运行了。
再把libs文件夹下的jar包都复制粘贴到app/libs下面
就是上述这些
记得删掉galaxy_lite_lbs_v2.0.jar,除了这些,其他的都导入进去
因为galaxy_lite_lbs_v2.0.jar和galaxy_lite.jar有的东西是重复的,
编译会报错Error:Execution failed for task ':APP:transformClassesWithDexForDebug'
完成之后效果如图:
步骤四:
最后也是重要的一步,否则前面都不生效
app目录下有个build.gradle文件,打开
defaultConfig 里面加上
multiDexEnabled true
和javaCompileOptions { annotationProcessorOptions { includeCompileClasspath = true } }
如果不加上第二句
javaCompileOptions { annotationProcessorOptions { includeCompileClasspath = true } }
那么打包Generate Signed APK时,会报如下错误:
Annotation processors must be explicitly declared now.
The following dependencies on the compile classpath are found to contain annotation processor.
Please add them to the annotationProcessor configuration.
- nirvana-network-annotation-0.2.0.jar (project :onsdk_all)
接着加上这3句话
在dependencies里面加上
implementation 'com.android.support:multidex:1.0.3'implementation project(':onsdk_all') implementation project(':NaviTts')
最后Syns Now,或者点击如图按钮,大功告成
接着导入这些包用这些类的方法都是没问题的,例如下面这个
import com.baidu.navisdk.adapter.impl.BaiduNaviManager;
如果上面这语句是灰色,因为你还没使用这个类的东西,也是导入成功了。
如果是红色,说明没导入成功,再仔细检查一下步骤吧。
总算解决了,不说了,百度官方解释是个坑!!!!
转载请注明,毕竟心累,坑死人。如果解决请点个赞吧大兄弟!
共同学习,写下你的评论
评论加载中...
作者其他优质文章