Unable to pre-dex 'gradle\caches\modules-2\files-2.1' to '\build\intermediates\transforms\dex\debug'

问题1

studio里面引入了这个依赖:
compile 'org.web3j:core:3.1.1-android'

,然后运行时报错:

Error:Execution failed for task ':XXXModule:transformClassesWithDexForDebug'.
 com.android.build.api.transform.TransformException: java.lang.RuntimeException: 
2.1\org.web3j\utils\3.1.1-android\f25b5c6ea2e40e163509787662dd9f3f415056e1\utils-3.1.1-android.jar' 
to 'E:\work\XXXModule\build\intermediates\transforms\dex\debug\folders\XXX1000\10\utils-
3.1.1-android_1f04c9bb23758324ff1b2cb66984397352a0440c'

解决1

网上搜了好多方法,最终这条方法管用:
module的build.gradle的android下加入

 dexOptions {
        preDexLibraries = false
        additionalParameters=['--core-library']
    }

问题2

接下来运行报错是这样的:
···
Error:Execution failed for task ‘:BCLWalletModule:transformResourcesWithMergeJavaResForDebug’.

com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK META-INF/LICENSE
File1: C:\Users\e.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.core\jackson-databind\2.8.5\b3035f37e674c04dafe36a660c3815cc59f764e2\jackson-databind-2.8.5.jar
File2: C:\Users\e.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.core\jackson-annotations\2.8.0\45b426f7796b741035581a176744d91090e2e6fb\jackson-annotations-2.8.0.jar
File3: C:\Users\e.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.core\jackson-core\2.8.5\60d059f5d2930ccd1ef03535b713fd9f933d1ba7\jackson-core-2.8.5.jar
···

解决2

这个问题网上解决办法很多,似乎是说lib重复了需要剔除掉,我整个项目没有libs文件夹,就加了这一个依赖,不明白为什么会重复。
还是build.gradle android节点下加入

    packagingOptions {
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/NOTICE.txt'
    }

可能你的报错不一定是META-INF/xxx,可能是其他lib或so报错,是什么报错就exclude什么就好了。

参考:

https://www.e-learn.cn/content/wangluowenzhang/275097

阅读更多
想对作者说点什么?
相关热词

博主推荐

换一批

没有更多推荐了,返回首页