• 常用依赖
//1.直接依赖第三方开源库,一般是托管在 jitpack 或者 jcenterimplementation 'com.google.code.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文件 implementation files('libs/bdasr_V3_20170801_60da871.jar')//4.依赖本地的modelimplementation 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中.
  3) 如果你要提供你的库工程的 aar 给他人,你需要同时告诉他这个库工程依赖的其他aar 和远程 jar包(因为他们没有打包到 aar 中)
  4) 如果通过工程依赖(即compile project(’:lib’)的方式), 依赖是可以传递的,所以不需要在声明一次依赖.

  • 去掉重复依赖

1.第三方库中同样使用了implementation或者compile依赖相同的库

    implementation('com.allenliu.versionchecklib:library:2.0.5') {        exclude group: 'com.android.support', module: 'appcompat-v7'        exclude group: 'com.android.support.constraint', module: 'constraint-layout'        exclude group: 'org.greenrobot', 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

更多相关文章

  1. Android错误之控件FloatingActionButton
  2. Android实现使用流媒体播放远程mp3文件的方法
  3. 第20章、OnCheckedChangeListener事件(从零开始学Android)
  4. Android(安卓)Runtime
  5. Android(安卓)面试 指南:互联网大厂需要怎样的工程师?or 我们需要
  6. 史上最全!押题率90%的 Android(安卓)中高级工程师面试复习大纲及
  7. 2020最新版Android一步一步教轻松通过ArcSoft虹软平台实现人脸识
  8. 手把手教你怎么去除Android(安卓)APP里面的广告
  9. Android内部存储和外部存储的几个概念(内部存储空间和外部存储空

随机推荐

  1. ListView可复用适配器的封装及性能优化
  2. commons.dbutils1.2介绍及使用
  3. DJI SDK开发——第一个程序
  4. Android---Volley请求天气接口JSON解析
  5. 获取上周五的日期,除非今天是星期五使用T-
  6. 提供一个Android原生的Progress——Swipe
  7. Mysql替代解决方案Cassandra
  8. 使用进度条延迟加载图像会使图像在显示时
  9. SQL Server 2005递归查询在数据中有循环,
  10. Android蓝牙通讯/蓝牙聊天的实现(二)_含dem