AndroidGradle依赖管理、去除重复依赖、忽略常⽤依赖
trick or treat
//1.直接依赖第三⽅开源库,⼀般是托管在 jitpack 或者 jcenter
implementation 'de.gson:gson:2.2.4'
implementation 'com.android.support:cardview-v7:25.0.0'
implementation 'com.android.support:design:25.0.0'
//2.直接依赖本地的aar⽂件,⼀般是在libs⽬录下
implementation(name: 'LiteAVSDK_Professional_5.1.5293', ext: 'aar')
//3.直接依赖本地的jar⽂件ncaa是什么
implementation files('libs/bdasr_V3_20170801_60da871.jar')
//4.依赖本地的module
implementation project(':wavelibrary')
implementation project(':android-ffmpeg')
库⼯程依赖传递问题
服装防盗
1、依赖常⽤的基本类型有:provided和compile,provided 只在编译⽣效不会打包到 apk 或 aar 中;compile 是会打包到 apk或 aar 中的(如果是库⼯程的话有特殊情况,参考下⾯3).
2、app ⼯程的当前(compile+) 的依赖都会打包到 app 中
3、库⼯程中:
1) jar 包:远程依赖不会打包到 aar 中;本地依赖会;
2) aar:远程和本地都不不会打包到 aar中.
sasha blonde
3) 如果你要提供你的库⼯程的 aar 给他⼈,你需要同时告诉他这个库⼯程依赖的其他aar 和远程 jar包(因为他们没有打包到 aar 中)
4) 如果通过⼯程依赖(即compile project(’:lib’)的⽅式), 依赖是可以传递的,所以不需要在声明⼀次依赖.英文儿童歌曲
去掉重复依赖rest
1.第三⽅库中同样使⽤了implementation或者compile依赖相同的库relationship是什么意思
implementation('com.allenliu.versionchecklib:library:2.0.5') {
exclude group: 'com.android.support', module: 'appcompat-v7'
exclude group: 'com.straint', module: 'constraint-layout'
火星时代学费
exclude group: 'obot', module: 'eventbus'
exclude group: 'com.squareup.okhttp3', module: 'okhttp'
}
2.在不同的库中出现相同的so⽂件
pickFirst只会打包第⼀个遇到的冲突的so,merge(碰到冲突会合并)和exclude(直接排除匹配到的⽂件,不建议使⽤)
packagingOptions {
pickFirst 'lib/arm64-v8a/libgnustl_shared.so'
pickFirst 'lib/armeabi-v7a/libgnustl_shared.so'
}
遇到这种错误可以通过上⾯⽅法尝试解决
Error:Execution failed for task ‘:app:transformNativeLibsWithMergeJniLibsForDebug’. > More than one
长春教育在线Manifest merger failed with multiple errors, e logs
女友落难记