解决思路:
解析引用的aar合并到自己的aar里面,只生产一个aar
第一步: Apply plugin
添加以下代码到你工程根目录下的build.gradle
文件中:
buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:xxx' classpath 'com.kezong:fat-aar:1.2.12' } }
添加以下代码到你的主library的build.gradle
中:
apply plugin: 'com.kezong.fat-aar'
第二步: Embed dependencies
将 implementation
或者 api
改成 embed
代码所示:
dependencies { implementation fileTree(dir: 'libs', include: '*.jar') // java dependency embed project(path: ':lib-java', configuration:'default') // aar dependency embed project(path: ':lib-aar', configuration:'default') // aar dependency embed project(path: ':lib-aar2', configuration:'default') // local full aar dependency, just build in flavor1 flavor1Embed project(path: ':lib-aar-local', configuration:'default') // local full aar dependency, just build in debug debugEmbed (name:'lib-aar-local2',ext:'aar') // remote jar dependency embed 'com.google.guava:guava:20.0' // remote aar dependency embed 'com.facebook.fresco:fresco:1.11.0' // don't want to embed in // 不建议使用implementation,因为该依赖可能与application的依赖版本不一致,使用implementation可能会导致R类找不到的问题 compileOnly 'com.android.support:appcompat-v7:27.1.1' }
详细参考 fat-aar-android