【Mapbox】集成到Android已有项目时的jar包冲突

AGPBI: {"kind":"error","text":"error: duplicate value for resource /u0027attr/layout_anchorGravity/u0027 with config /u0027/u0027.","sources":[{"file":"G://.gradle//caches//transforms-1//files-1.1//appcompat-v7-25.3.1.aar//aa3a481d7d5a34e0e9c4966911ce7c4a//res//values//values.xml","position":{"startLine":202,"startColumn":4,"startOffset":24572,"endColumn":68,"endOffset":24636}}],"original":"","tool":"AAPT"}
AGPBI: {"kind":"error","text":"error: resource previously defined here.","sources":[{"file":"G://.gradle//caches//transforms-1//files-1.1//appcompat-v7-25.3.1.aar//aa3a481d7d5a34e0e9c4966911ce7c4a//res//values//values.xml","position":{"startLine":202,"startColumn":4,"startOffset":24572,"endColumn":68,"endOffset":24636}}],"original":"","tool":"AAPT"}
复制代码

报的错误是 v7
包下找不到 attr/layout_anchorGravity
这个是属性,经过对jar包的搜索,
这个属性是属于 Constraint
包下的一个属性,v7包下并没有这个属性。

解决方法

  • 用过 gradlew app:dependencies > dep.txt
    将项目的所有依赖写入到文件中
  • 查看dep.txt文件中jar包的重复依赖
  • 最后发现是由于项目本身依赖了v7包,MapboxSDK也引用了v7包,所以在引入 7.4.0
    版本的Mapbox包是需要这样写
implementation('com.mapbox.mapboxsdk:mapbox-android-sdk:7.4.0') {
    exclude group: 'com.android.support'
}
复制代码
  • 如果引入的是 8.0
    版本以上的jar包,同时还引入了 com.android.support:design
    的话,则不会报上面的错误,会在运行项目时提示facebook的soloader下的Api18TraceUtils类重复
AGPBI: {"kind":"error","text":"Program type already present: com.facebook.soloader.Api18TraceUtils","sources":[{}],"tool":"D8"}
复制代码
  • 所以如果是引入 8.0
    版本的包时
implementation('com.mapbox.mapboxsdk:mapbox-android-sdk:8.1.0') {
    exclude group: 'com.android.support'
}
implementation ('com.android.support:design:25.3.1') {
    exclude module: 'conceal'
}
复制代码
  • 如果还需要引入Mapbox的语言本地化jar包时,需要这样写
//Mapbox语言本地化
implementation('com.mapbox.mapboxsdk:mapbox-android-plugin-localization-v8:0.12.0-SNAPSHOT') {
    exclude group: 'com.mapbox.mapboxsdk', module: 'mapbox-android-sdk'
    exclude group: 'com.android.support'
}
复制代码

原文 

https://juejin.im/post/5dc3cdacf265da4d2c5ea380

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » 【Mapbox】集成到Android已有项目时的jar包冲突

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址