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

一开始 项目中报错 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);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值