相关疑难解决方法(0)

Android Gradle编译commons-io在库树中创建副本

我正在尝试构建和维护一个旧的应用程序,但我无法通过构建阶段.在我的app/build.gradle文件中我有

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.apache.commons:commons-io:1.3.2'
    //some more libraries compiled as well
}
Run Code Online (Sandbox Code Playgroud)

但在尝试执行时遇到以下错误:

错误:任务':myApp'的执行失败.com.android.build.api.transform.TransformException:java.util.zip.ZipException:重复条目:org/apache/commons/io/CopyUtils.class

这几乎可以肯定是因为当我编译那个jar时,在我的外部库树的顶部,生成了这个:

在此输入图像描述

为什么会发生这种情况,如何让它停止以便我可以完成构建?

java android gradle

7
推荐指数
3
解决办法
8129
查看次数

为什么Apache Commons库具有不一致的groupId,具体取决于项目?

Apache Commons是一组许多不同的库.在Maven Central Repository上,他们对groupIds有两种不同的命名约定,具体取决于项目,例如

  • 对于共享郎,共享压缩,共享韦弗 -'org.apache.commons'
  • for Commons CLI,Commons IO - 'commons-[library_name]'

他们之间有什么区别?

naming-conventions apache-commons maven

6
推荐指数
1
解决办法
350
查看次数

Gradle构建失败:java.util.zip.ZipException:重复条目:org/apache/commons/io/CopyUtils.class

当我尝试在我的nexus 7上运行应用程序时,gradle构建每次都会失败并给出相同的错误:

> com.android.build.api.transform.TransformException:
java.util.zip.ZipException: duplicate entry:
org/apache/commons/io/CopyUtils.class
Run Code Online (Sandbox Code Playgroud)

该错误似乎表明CopyUtils.classfrom commons-io在构建过程中被包含两次.

完整日志:

Information:Gradle tasks [:android:assembleDebug]

:android:preBuild UP-TO-DATE

:android:preDebugBuild UP-TO-DATE

:android:checkDebugManifest

:android:preReleaseBuild UP-TO-DATE

:android:prepareComAndroidSupportMultidex101Library UP-TO-DATE

:android:prepareDebugDependencies

:android:compileDebugAidl UP-TO-DATE

:android:compileDebugRenderscript UP-TO-DATE
:android:generateDebugBuildConfig UP-TO-DATE

:android:mergeDebugShaders UP-TO-DATE

:android:compileDebugShaders UP-TO-DATE

:android:generateDebugAssets UP-TO-DATE

:android:mergeDebugAssets UP-TO-DATE

:android:generateDebugResValues UP-TO-DATE


:android:generateDebugResources UP-TO-DATE

:android:mergeDebugResources UP-TO-DATE

:android:processDebugManifest UP-TO-DATE

:android:processDebugResources UP-TO-DATE

:android:generateDebugSources UP-TO-DATE

:android:incrementalDebugJavaCompilationSafeguard UP-TO-DATE

:android:compileDebugJavaWithJavac UP-TO-DATE

:android:compileDebugNdk UP-TO-DATE

:android:compileDebugSources UP-TO-DATE

:android:prePackageMarkerForDebug
:android:transformClassesWithJarMergingForDebug FAILED
Error:Execution failed for task 
':android:transformClassesWithJarMergingForDebug'.

> com.android.build.api.transform.TransformException: 
java.util.zip.ZipException: duplicate entry: 
org/apache/commons/io/CopyUtils.class

Information:BUILD FAILED

Information:Total time: 11.208 …
Run Code Online (Sandbox Code Playgroud)

java android gradle build.gradle android-gradle-plugin

6
推荐指数
3
解决办法
9906
查看次数

原因:com.android.dex.DexException:多个dex文件在Studio 3.0中定义Lorg/apache/commons/io/IOCase

我正在开发一个项目.这适用于Android studio 2.3.3,但是当我更新我的Android Studio 3.0并打开我的项目然后它无法组装并且它发送给我下面的错误日志时会发生什么.

错误日志

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;
Run Code Online (Sandbox Code Playgroud)

请不要重复,因为我已经尝试过以下所有的事情

  • 清洁项目
  • 重建项目
  • 重新打开项目并清理并重建后,删除项目中的/.gradle …

apache android gradle android-multidex android-studio-3.0

5
推荐指数
1
解决办法
7700
查看次数

多个dex文件定义Lorg/apache/commons/io/IOUtils;

我遇到了一个非常愚蠢的问题.我无法组装我的项目.

我为例如数据库管理,api,自定义布局等创建了单个项目.现在我尝试将所有这些项目合并为一个,以构建单个应用程序.

但不幸的是,它不能像我得到这个错误一样被解雇:

任务':app:transformDexArchiveWithDexMergerForDebug'的执行失败.com.android.build.api.transform.TransformException:com.android.dex.DexException:多个dex文件定义Lorg/apache/commons/io/IOUtils;

我的依赖树如下:

6.0.2 (*)
|    |    +--- com.android.support:support-core-utils:26.0.2
|    |    |    +--- com.android.support:support-annotations:26.0.2
|    |    |    \--- com.android.support:support-compat:26.0.2 (*)
|    |    +--- com.android.support:support-core-ui:26.0.2
|    |    |    +--- com.android.support:support-annotations:26.0.2
|    |    |    \--- com.android.support:support-compat:26.0.2 (*)
|    |    \--- com.android.support:support-fragment:26.0.2
|    |         +--- com.android.support:support-compat:26.0.2 (*)
|    |         +--- com.android.support:support-core-ui:26.0.2 (*)
|    |         \--- com.android.support:support-core-utils:26.0.2 (*)
|    +--- com.android.support:support-vector-drawable:26.0.2
|    |    +--- com.android.support:support-annotations:26.0.2
|    |    \--- com.android.support:support-compat:26.0.2 (*)
|    \--- com.android.support:animated-vector-drawable:26.0.2
|         +--- com.android.support:support-vector-drawable:26.0.2 (*)
|         \--- com.android.support:support-core-ui:26.0.2 (*)
+--- …
Run Code Online (Sandbox Code Playgroud)

android dex android-gradle-plugin

1
推荐指数
1
解决办法
1659
查看次数