您的位置:首页 > 产品设计 > UI/UE

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

2016-10-17 11:41 549 查看
一开始 项目中报错 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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐