按照百度地图官方文档初始化导航时,android studio报错:找不到BaiduNaviManagerFactory。后来看了一些网上的demo,发现他们的demo里用到的navisdk是百度地图SDK下载下来就带的,然而新版本的SDK已经改了。“导航SDK核心已经打包为一个独立的aar,命名为onsdk_all.aar”。下面就是从新版本的SDK里得到这个包的方法(推荐第一种):
方法一
1. 依次点击file—new—new module—选择import .jar/.aar packages—选择SDK里面的onsdk_all.aar—finish
2. 打开file—project structure—dependencies
选择app,然后点击+号,选择Module Dependency,再选择刚导入的onsdk_all,最后sync一下就好啦。
列表中会出现一个带茶杯符号的onsdk_all文件,里面有很多核心class以及资源文件
3. 测试
实测,好像不用在activity里import就能使用新module里的类。
方法二
1. 把NaviTts.aar(如果用了内置导航语音的话)和onsdk_all.aar复制到项目的libs文件里
2. 在app的build.gradle里添加如下代码
repositories {
...
flatDir {
dirs 'libs'
}
}
以及
dependencies {
...
implementation (name: 'onsdk_all', ext:'aar')
implementation (name: 'NaviTts', ext:'aar')//如果没用内置导航tts,就把这个注释掉
}
3. Sync Project
sync后,在External Libraries 里面会出现如下两个Gradle文件夹:
所要的navisdk以及一些必要的依赖就出来了。导入BaiduNaviManagerFactory这些类也不会报错了