关于 Android “finished with non-zero exit value ”引发的问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012153184/article/details/52837468

一开始 项目中报错 finished with non-zero exit value 2 这个问题想必每个android开发的人员几乎都遇到过,当然在网上能够找到很多的解决方法大部分就是是说

项目包含了两个相同包名的不同 project 或者 jar

解决的思路也挺简单的

删除多余的 jar 如 V4包,只要将其中一个 module 中的 V4包干掉,然后引用另一个 有 V4包的Module 就哦了

但是关于这个问题还有一个产生问题的原因就是

方法数超过65K

针对第二种错误原因

在build.gradle里 defaultConfig {}添加 multiDexEnabled true

但是又出现了新的问题
finished with non-zero exit value 2
网上找原因的话会发现有下面一段提示

Uncaught translation error: java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: GC overhead limit exceeded

意思是 GC 的 开销超限制了 或是 运行java程序内存不足
那接下来改下 配置文件
project.properties

-Xms512m -Xmx1024m

第一个是最小的初始化内存,第二个是最大的占有内存

还可以加上 -XX:MaxPermSize=1024m这个意思是在编译文件时一直占有最大内存

修改完再次运行

Error:Execution failed for task 
> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0_65\bin\java.exe'' finished with non-zero exit value 3

度娘结果如下 。。。

这个错误就在app.bulid里面加上这句,再rebuild ,之后再运行就行了。4g可以看电脑配置修改(2g,3g,6g,8g)。
这次编译 通过可是运行出错

报错:

 java.lang.NoClassDefFoundError: com.umeng.analytics.d

最终在友盟论坛中找到了解决方法

问题是因为在build.gradle中配置了分包,就是multiDexEnabled true,三种解决方案:
1、不配置分包(这个好像不太可能,既然配置了肯定是超了65535)
2、自定义的application不要继承Application,而是继承MultiDexApplication。
3、仍然继承Application,然后复写Application的attachBaseContext(Context base)方法,在该方法中执行MultiDex.install(base);

猜你喜欢

转载自blog.csdn.net/u012153184/article/details/52837468