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
}
}
百度良久。。。
说法一:项目包含了两个相同包名的不同 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
}
}
相关文章推荐
- 关于FineUI使用问题的一点记录。
- FrexibleSearch Query语法
- IOS中Key-Value Coding (KVC)的使用具体解释
- onInterceptTouchEvent dispatchTouchEvent requestDisallowInterceptTouchEvent
- UINavgationController
- AndroidStudioTutorial_160217S001_简单UI
- UIControlEvent
- UICollectionView实现无限轮播
- iOS 解决页面按钮同时点击,同时触发问题 设置所有UIButton的ExclusiveTouch属性为YES
- HDU 1159:Common Subsequence
- java建造者模式(Builder)
- UIToolBar的使用
- 学习UITextField忽略掉的细节
- [leetcode] 334. Increasing Triplet Subsequence
- Qt使用教程之使用Qt Quick UI表单(二)
- 2016太原UI设计师告你去公司我们涉猎哪些工作?
- ios UIAlertController
- Sublime Text 3 build 3103 license 四个供研究使用
- Map(key,value)
- poj 2031 Building a Space station(prim)