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

error :Java.exe finished with non-zero exit value 1(或2)

2016-02-17 14:29 344 查看
导入module后出现以下问题





百度良久。。。

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

(1)libs目录下存放有jar包,但是build.gradle中也写了导包语句。
(2)新引入的Library项目中引用了主项目中已经引用的jar包,导致重复加载包。

举例:

1、当 A Module 中有 V4包,B Module 中也有 V4包,这时就会出现这样的错误

2、com.android.dex.DexException: Multiple dex files define Lcom/sina/weibo/sdk/BuildConfig

这是导入新浪微博库出现的错误,当出现标题错误时,如果是新浪微博捣的鬼的话,你只要在标题的错误日志之前几行就可以找到如上的错误日志,那是因为WeiboSDK里面含有一个library叫weibosdkcore.jar,这个weibosdkcore.jar的package name是com.sina.weibo.sdk. 而WeiboSDK这个project的package name也是com.sina.weibo.sdk造成的

解决方法1:

删除多余的 jar

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

解决方法2:

打开Gradle项目中的,对应项目的脚本文件 ,改成如下的就行了

...
provided fileTree(include: ['*.jar'], dir: 'libs')
...
}

即将引用的库的条件改为provided,不要用compile.因为它们已经是库了,再编译就。。。

解决方法3:

(1)先检查Android 兼容包 support-v4 和 support-v7 包;
(2)再检查一些常用的开源项目,比如:Gson、Butter Knife、EventBus、Nineoldandroids等。
(3)建议:不要将jar包放到libs目录下,而要用Gradle构建,即在build.gradle中写导包语句。

说法二:同时在工程中引入了多个第三方jar包,导致调用的方法数超过了android设定的65536个(DEX 64K problem),进而导致dex无法生成,也就无法生成APK文件。

解决方法:(最终解决方案)

打开 app/build.gradle 文件
android {
defaultConfig {
// Enabling multidex support.
// 1. 65535 limited
// 2. run -- error :Java.exe finished with non-zero exit value 2
multiDexEnabled true
  }

dexOptions {
javaMaxHeapSize "1g" <- Java.exe finished with non-zero exit value 1
设置的值不要大于你机器可用的内存,
如:Windwos10 4GB 此处设置为 1g
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: