问题描述
我正在开发一个项目。这与Android Studio 2.3.3工作正常,但是当我更新了我的并打开我的项目,然后它无法组装,它会发送错误日志。
$ b
错误日志
错误:将字节码转换为dex时出错:
原因:com.android.dex.DexException:多个dex文件定义了Lorg / apache /公共/ IO / IOCase;
错误:com.android.dex.DexException:多个dex文件定义了Lorg / apache / commons / io / IOCase;
错误:com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:661)
错误:at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:616)
错误:com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:598)
错误:at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)
错误:在com.android.dx.merge.DexMerger.merge(DexMerger.java:198)
错误:在com.android.builder.dexing.DexArchiveMergerCallable.call(DexArchiveMergerCallable.java:61)
错误:在com.android.builder.dexing.DexArchiveMergerCallable.call(DexArchiveMergerCallable.java:36)
错误:在java.util.concurrent.ForkJoinTask $ AdaptedCallable.exec(ForkJoinTask.java:1424)
错误:在java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
错误:在java.util.concurrent.ForkJoinPool $ WorkQueue.runTask(ForkJoinPool.java:1056)
错误:在java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
错误:在java.util.concurr ent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
错误:任务':app:transformDexArchiveWithDexMergerForDebug'的执行失败。
> com.android.build.api.transform.TransformException:com.android.dex.DexException:多个dex文件定义Lorg / apache / commons / io / IOCase;
请不要让它重复,因为我已经尝试过所有的东西
$ b
- 清理项目
- 重建项目
- 已删除重新打开项目后清理并重建
- 删除 .gradle 现金文件夹后重新打开项目并清理并重建
后删除 .gradle
其他的想法是我在下面的堆栈溢出问题和它的答案和其他答案,然后我也没有得到解决方案。
,,,和
apply plugin:'com.android.application'
android {
compileSdkVersion 25
buildToolsVersion '26 .0.2'
defaultConfig {
applicationIdcom.mypackage
minSdkVersion 15
targetSdkVersion 25
versionCode 1
versionName1.0
testInstrumentationRunnerandroid.support.test.runner.AndroidJUnitRunner
//用于渲染脚本以创建模糊图像
renderscriptTargetApi 18
renderscriptSupportModeEnabled true
multiDexEnabled true
$ b buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules。 pro'
}
}
}
依赖关系{
编译fileTree(dir:'libs',include:['* .jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2',{
exclude group:'com.android.support',module:'support-annotations'
})
编译'com.android.support:appcompat-v7:25.3.1'
编译'com.android.support:cardview-v7:25.3.1'
编译'com.android.support:design:25.3.1'
compile'com.android.support:multidex:1.0.0'
testCompile'junit:junit:4.12'
编译'com.jakewharton:butterknife:8.8.1'
annotationProcessor'com.jakewharton:butterknife-compiler:8.8.1'
// goog le API
编译'com.google.firebase:firebase-auth:10.0.1'
编译'com.google.firebase:firebase-messaging:10.0.1'
compile'com。 google.firebase:firebase-core:10.0.1'
compile'com.google.android.gms:play-services-auth:10.0.1'
compile'com.google.android.gms: play-services-places:10.0.1'
compile'com.google.android.gms:play-services-maps:10.0.1'
// facebook SDK
编译'com.facebook.android:facebook-android-sdk:[4,5)'
编译'de.hdodenhof:circleimageview:2.1.0'
compile'com.github。 bumptech.glide:glide:3.7.0'
compile'com.squareup.okhttp3:okhttp:3.4.2'
compile('org.apache.commons:commons-lang3:3.4'){
排除模块:'commons-io'
}
编译('net.yazeed44.imagepicker:imagepicker:1.3.0'){
排除模块:'cam2 '
}
}
应用插件:'com.google.gms.googl电子服务'
请帮我解决这个问题。我可以知道你是否需要我身边的任何事情。帮助将非常感激。感谢提前。
我同意还有另一个lib在你的项目中也包含 commons-io
。
有一个选项可以解决gradle依赖中的这个冲突问题。在您的应用程序级别添加以下代码 build.gralde
file。
配置.all {
resolutionStrategy.dependencySubstitution {
替换模块('org.apache.commons:commons-io:1.3.2')与模块('commons-io:commons-io:1.3.2' )
$ b $ p $原因是为什么'org.apache.commons:commons-io:1.3.2'
is conflict检查这个堆栈溢出
。
是什么是在maven-dependencies-org-apache-commonscommons-io / 37421794#37421794I am developing one project. This is working fine with Android studio 2.3.3, but what happen is when i updated my Android Studio 3.0 and open my project then it can't assembled and it send me below error Log.
Error Log
Error:Error converting bytecode to dex:
Cause: com.android.dex.DexException: Multiple dex files define Lorg/apache/commons/io/IOCase;
Error:com.android.dex.DexException: Multiple dex files define Lorg/apache/commons/io/IOCase;
Error: at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:661)
Error: at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:616)
Error: at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:598)
Error: at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)
Error: at com.android.dx.merge.DexMerger.merge(DexMerger.java:198)
Error: at com.android.builder.dexing.DexArchiveMergerCallable.call(DexArchiveMergerCallable.java:61)
Error: at com.android.builder.dexing.DexArchiveMergerCallable.call(DexArchiveMergerCallable.java:36)
Error: at java.util.concurrent.ForkJoinTask$AdaptedCallable.exec(ForkJoinTask.java:1424)
Error: at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
Error: at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
Error: at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
Error: at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
Error:Execution failed for task ':app:transformDexArchiveWithDexMergerForDebug'.
> com.android.build.api.transform.TransformException: com.android.dex.DexException: Multiple dex files define Lorg/apache/commons/io/IOCase;
Please don't make it duplicate because i have tried below all the things
- Clean project
- Rebuild project
- Deleted /.gradle folder in project after Reopen project and clean and rebuild
- Deleted .gradle cash folder after Reopen project and clean and rebuild
Other think is i checked below stack overflow questions and its answer and other also then also i don't get the solution.
1. Question, 2. Question, 3. Question, 4. Question and 5. Question
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.0'
classpath 'com.google.gms:google-services:3.1.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
google()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
apply plugin: 'com.android.application'
android {
compileSdkVersion 25
buildToolsVersion '26.0.2'
defaultConfig {
applicationId "com.mypackage"
minSdkVersion 15
targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
// for render script to create blur image
renderscriptTargetApi 18
renderscriptSupportModeEnabled true
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support:cardview-v7:25.3.1'
compile 'com.android.support:design:25.3.1'
compile 'com.android.support:multidex:1.0.0'
testCompile 'junit:junit:4.12'
compile 'com.jakewharton:butterknife:8.8.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
//google API
compile 'com.google.firebase:firebase-auth:10.0.1'
compile 'com.google.firebase:firebase-messaging:10.0.1'
compile 'com.google.firebase:firebase-core:10.0.1'
compile 'com.google.android.gms:play-services-auth:10.0.1'
compile 'com.google.android.gms:play-services-places:10.0.1'
compile 'com.google.android.gms:play-services-maps:10.0.1'
//facebook SDK
compile 'com.facebook.android:facebook-android-sdk:[4,5)'
compile 'de.hdodenhof:circleimageview:2.1.0'
compile 'com.github.bumptech.glide:glide:3.7.0'
compile 'com.squareup.okhttp3:okhttp:3.4.2'
compile ('org.apache.commons:commons-lang3:3.4'){
exclude module: 'commons-io'
}
compile('net.yazeed44.imagepicker:imagepicker:1.3.0') {
exclude module: 'cam2'
}
}
apply plugin: 'com.google.gms.google-services'
Please do some help that how i can fix this issue. May i know if you need any thing from my side. Help would be very appreciate. Thank in advance.
解决方案 I agree with @CommonsWare that there is one another lib also contain commons-io
in your project.
There is an option to fix this conflict issue in gradle dependency. Add below code in your app level build.gralde
file.
configurations.all {
resolutionStrategy.dependencySubstitution {
substitute module('org.apache.commons:commons-io:1.3.2') with module('commons-io:commons-io:1.3.2')
}
}
Reason is that why that 'org.apache.commons:commons-io:1.3.2'
is conflict Check this stack overflowquestion's answer.
这篇关于原因:com.android.dex.DexException:多个dex文件在Studio 3.0中定义了Lorg / apache / commons / io / IOCase的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!