1. 程式人生 > >Error:Execution failed for task ':app:transformClassesWithDexForDebug

Error:Execution failed for task ':app:transformClassesWithDexForDebug

引入之前在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'
    }


成功解決!