Error:Execution failed for task ':app:transformClassesWithDexForDebug
阿新 • • 發佈:2019-01-28
引入之前在eclipse下開發的專案到AndroidStudio 遇到了如下錯誤:
Error:Execution failed for task ':guanXiang:transformClassesWithDexForDebug'. > com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.7.0_79\bin\java.exe'' finished with non-zero exit value 2
網上搜了一下 stackoverflow也有類似的情況,較多的解決方案是:在build.gradle中加入
dexOptions {
javaMaxHeapSize "4g"
}
defaultConfig {
multiDexEnabled true
}
加入後還是有問題,發現這個問題的本質還是相同jar或者檔案導致的衝突,根據提示發現有個跟友盟分享的類衝突了
Error:Execution failed for task ':guanXiang:transformClassesWithJarMergingForDebug'. > com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: com/tencent/mm/sdk/a/a$a.class
找到發現主模組和分享模組的build.gradle編譯了同一個東西 暈。。 果斷刪掉
// compile files('libs/SocialSDK_WeiXin_1.jar')
// compile files('libs/SocialSDK_WeiXin_2.jar')
還是有問題 錯誤資訊為
Error:Execution failed for task ':guanXiang:transformResourcesWithMergeJavaResForDebug'. > com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK META-INF/NOTICE.txt File1: D:\AndroidStudioCode\GuanXiang\guanXiang\libs\CCP_REST_SMS_SDK_JAVA_v2.6.3r.jar File2: D:\AndroidStudioCode\GuanXiang\guanXiang\build\intermediates\exploded-aar\GuanXiang\social_sdk_library_project\unspecified\jars\classes.jar
這次的錯誤指向就比較明確了 有相同的META-INF裡面的東西 解決方法:還是在build.gradle的android{}中加入
packagingOptions {
exclude 'META-INF/DEPENDENCIES.txt'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE'
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/notice.txt'
exclude 'META-INF/license.txt'
exclude 'META-INF/dependencies.txt'
exclude 'META-INF/LGPL2.1'
}
成功解決!