将字节码转换为dex org / apache / commons / io / FileCleaner时出错(Android Studio 3.0预览版beta 2/3)

时间:2017-08-31 20:16:18

标签: android android-studio gradle android-studio-3.0

我们的项目编译,但我无法将其安装到模拟器中。我看到其他人报告类似问题,但他们的解决方案是更改版本号。对我们来说,这适用于其他开发人员的机器,但不适用于我的。我应该删除一些缓存吗?

我重新安装了Android Studio 3.0,删除了〜/ .gradle,删除了项目内的.gradle文件夹,重新启动了AS,清理文件夹......

是否存在特定的问题,这是Apache类的问题?

Information:Gradle tasks [:app:assembleXXX]
Error:Error converting bytecode to dex:
Cause: com.android.dex.DexException: Multiple dex files define Lorg/apache/commons/io/FileCleaner;
Error:com.android.dex.DexException: Multiple dex files define Lorg/apache/commons/io/FileCleaner;
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:transformDexArchiveWithDexMergerForXXX'.
> com.android.build.api.transform.TransformException: com.android.dex.DexException: Multiple dex files define Lorg/apache/commons/io/FileCleaner;

以下是gradle的依赖项:

dependencies {
implementation 'com.google.code.gson:gson:2.8.0'
implementation 'com.google.android.gms:play-services-analytics:11.2.0'
implementation 'com.google.android.gms:play-services-gcm:11.2.0'
implementation 'com.google.android.gms:play-services-location:11.2.0'
implementation 'com.google.android.gms:play-services-maps:11.2.0'
implementation 'com.googlecode.android-query:android-query:0.25.9'
implementation 'org.apache.commons:commons-io:1.3.2'
implementation 'org.jsoup:jsoup:1.8.1'
implementation 'com.android.support:appcompat-v7:26.0.1'
implementation 'com.android.support:cardview-v7:26.0.1'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
implementation 'com.android.support:design:26.0.1'
implementation 'com.android.support:recyclerview-v7:26.0.1'
implementation 'com.android.support:support-v4:26.0.1'
implementation 'com.android.support:support-v13:26.0.1'
implementation 'de.hdodenhof:circleimageview:2.0.0'
implementation 'io.reactivex:rxandroid:1.1.0'
implementation 'io.reactivex:rxjava:1.1.8'
implementation 'org.altbeacon:android-beacon-library:2.12.1'

}

2 个答案:

答案 0 :(得分:2)

我无法找到此问题的原因,因为我的依赖项不依赖于commons-io,但在我的情况下,我通过使用另一个commons-io模块来修复它:

我取代了 compile 'org.apache.commons:commons-io:1.3.2'


compile 'commons-io:commons-io:2.5'

答案 1 :(得分:0)

仍然不确定真正的答案,但我们的项目适用于那些进入Android Studio 3 beta 3的用户,然后又回到了测试阶段2.我自己从未有过测试版3的是那个被打破的人。我们在其他笔记本电脑上尝试了这一点,并确信我们的项目中的某些内容已经打破了测试版2中从未使用过测试版3的用户。我们的解决方案是等待下一个Android Studio版本。