Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'.
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'.
> com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK META-INF/rxjava.properties
File1: C:\Users\82661\.gradle\caches\modules-2\files-2.1\io.reactivex\rxjava\1.2.0\42bfaf64c94f3848ebf5cf1c2ea4ec9d1b3ac6c8\rxjava-1.2.0.jar
File2: D:\ThoughtCode\Android-code\YunHealth\app\build\intermediates\exploded-aar\cn.bmob.android\bmob-sdk\3.5.0\jars\classes.jar
* Try:
Run with --stacktrace option to get the stack trace. Run with --debug option to get more log output.
解决办法:
1.在Gradle:app中加入代码:
packagingOptions {
exclude 'META-INF/LICENSE'
exclude 'META-INF/NOTICE'
}
插入后Gradle如下:
apply plugin: 'com.android.application'
android {
compileSdkVersion 25
buildToolsVersion '24.0.0'
useLibrary 'org.apache.http.legacy'
packagingOptions {
exclude 'META-INF/LICENSE'
exclude 'META-INF/NOTICE'
}
defaultConfig {
applicationId "wang.fly.com.yunhealth"
minSdkVersion 15
targetSdkVersion 25
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
repositories{
flatDir{
dirs 'libs' //存放aar的目录地址
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile name: 'SMSSDK-2.1.2', ext: 'aar'
compile name: 'SMSSDKGUI-2.1.2', ext: 'aar'
testCompile 'junit:junit:4.12'
//3.5.0:请务必查看下面注释[1]
compile 'cn.bmob.android:bmob-sdk:3.5.0'
//如果你想应用能够兼容Android6.0,请添加此依赖(org.apache.http.legacy.jar)
compile 'cn.bmob.android:http-legacy:1.0'
//配置Mob短信验证
compile 'com.android.support:appcompat-v7:25.0.0'
compile 'com.android.support:recyclerview-v7:25.0.+'
compile 'io.reactivex:rxjava:1.2.0'
compile 'io.reactivex:rxandroid:1.2.0'
compile files('libs/MobCommons-2016.1012.1447.jar')
compile files('libs/MobTools-2016.1012.1447.jar')
}
解决结果:对我无效
2.解决依赖冲突
手动导入了Bmob第三方依赖,并将冲突的依赖文件删除(据此应该可以尝试使用gradle依赖,将rxjava包的最新版导入)
参考博文:
Gradle依赖项学习总结,dependencies、transitive、force、exclude的使用与依赖冲突解决 | Paincker | Hacker Meets Painter
http://www.paincker.com/gradle-dependencies
解决结果:成功