报错Execution failed for task ':app:transformClassesWithDexForDebug'.

其实报这个问题,挺奇怪的,个人觉得与自己的手机内存有关系,当时装app前后只相隔了一天,就报此问题,让人觉得很郁闷!
报错如下:

FAILURE: Build failed with an exception.
* What went wrong:
**Execution failed for task ':app:transformClassesWithDexForDebug'.**
> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: Error while executing java process with main class com.android.dx.command.Main with arguments {--dex --force-jumbo --num-threads=4 --multi-dex --main-dex-list D:\hxl\gysAndroid\SupplierApp\app\build\intermediates\multi-dex\debug\maindexlist.txt --output D:\hxl\gysAndroid\SupplierApp\app\build\intermediates\transforms\dex\debug\folders\1000\1f\main D:\hxl\gysAndroid\SupplierApp\app\build\intermediates\transforms\jarMerging\debug\jars\1\1f\combined.jar}

其推测报错原因有二个方面:

第一:整个项目中,出现重复引用第三方包,具体解决方案,详见博客
http://blog.csdn.net/willba/article/details/70244798
如:compile’com.android.support:appcompat-v7:24.1.0’ ,V7包版本不一致的问题了。
在app Module中compile 了 V7包,而在Library Module中导入的却是v4 包,报了错,把v4 改成v7 ,问题解决!
第二:其文件的方法引用超过了65535个方法限制,
其解决方案为: 给项目进行分包操作,然后对其虚拟机堆分配内存大小
在app的gradler配置文件中,添加 multiDexEnabled true 开启分包,然后添加

    dexOptions {
        javaMaxHeapSize "4g"
    }

最后来个示意图
这里写图片描述

以上!

这个错误通常是由于dex方法数超出限制引起的。你可以尝试以下方法解决: 1. 在appbuild.gradle文件中添加下面的代码: ```groovy android { defaultConfig { ... multiDexEnabled true } ... } dependencies { implementation 'com.android.support:multidex:1.0.3' } ``` 然后在你的Application类中添加下面的代码: ```java public class MyApplication extends Application { @Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); MultiDex.install(this); } ... } ``` 2. 如果你使用了很多第三方库,可以尝试使用ProGuard来优化代码。在appbuild.gradle文件中添加下面的代码: ```groovy android { ... buildTypes { release { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } ``` 然后在app的根目录下创建一个proguard-rules.pro文件,添加下面的代码: ``` -dontwarn okio.** -dontwarn javax.annotation.** -dontwarn com.squareup.okhttp.** -dontwarn retrofit2.Platform$Java8 -dontwarn retrofit2.Platform$Java8$.* -dontwarn retrofit2.Platform$Java9 -dontwarn retrofit2.Platform$Java9$.* -keep class com.google.gson.** { *; } -keep class org.apache.commons.io.** { *; } -keep class retrofit2.** { *; } -keepattributes Signature -keepattributes Exceptions -keepattributes InnerClasses ``` 注意:ProGuard可能会导致某些库出现问题,因此需要进行适当的测试和调整。 3. 如果以上方法都无法解决问题,可以尝试升级Gradle版本或者在项目中使用AndroidX。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值