引入之前在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'
}
成功解决!