项目中用到百度地图的开发,然后想把地图相关的代码上传到maven当做库来使用,但是当使用封装库文件(即aar文件)的地图MapView控件的时候, 报如下错:
Caused by: android.view.InflateException: Binary XML file line #7:
Error inflating class com.baidu.mapapi.map.MapView
百思不得其姐,我在库文件中调试是正常,就外面使用的时候出现这样的问题。这个地图库我是打包成aar文件上传到maven仓库的,所以我一直怀疑是不是打包成aar文件的时候缺失了什么东西,但就不知道缺了什么
后来几经波折,怀疑是缺少了地图jar包里面的assets文件的内容,如下
因为文件在打包成aar的时候,模块库里面的资源文件是会丢失的,没有了地图对应的资源文件,使用的时候当然出错了,所以把assets文件复制到使用库文件模块的main目录下,最后在gradle中配置assets文件夹的引用位置,问题得以解决
sourceSets {
main {
assets.srcDirs = ['src/main/assets']
}
}