Android Studio解决问题:Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/bin/java'' finished with non-zero exit value 2

最近在结合百度地图、百度定位、高德导航时,遇到异常:

Error:Execution failed for task ‘:app:dexWebDebug‘. > com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process ‘command ‘/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/bin/java‘‘ finished with non-zero exit value 2

一般这种问题是指Jar包导入重复或者Jar包中类重名了

Deal Method:

如果Gradle中提示Package重复,则可以选择删除重复包

如果Gradle中提示对应重复类名,则可以选择删除其中一个包中的某个类(没在使用中的类,另外,重复的资源文件也可以这么处理):

  (1)解压Jar包(有的时候解压会导致某些类自动被删除,目前不知道为什么)

  (2)直接目录中删除某个人,再重新打包。命令:jar cvf package_name.jar .

另外,网上也有说处理方法,在build.gradle中添加multiDex支持,但我试过,发现不行:

 1 android {
 2     compileSdkVersion 21
 3     buildToolsVersion "21.1.0"
 4
 5     defaultConfig {
 6         ...
 7         minSdkVersion 14
 8         targetSdkVersion 21
 9         ...
10
11         // Enabling multidex support.
12         multiDexEnabled true//添加这行
13     }
14     ...
15 }
16
17 dependencies {
18   compile ‘com.android.support:multidex:1.0.0‘//添加这行
19 }

处理过上面异常后,又报另外异常:

com.android.dex.DexIndexOverflowException: Cannot merge new index 66374 into a non-jumbo instruction!

Android在将jar转化成dex的时候,可能会合并类的代码,这将导致巨大的类;类中的每一个方法都分配有一个id,字节码中以id标识和调用方法;早期的Dalvik VM内部使用short类型变量来标识方法的id,最大值限制在65535;这样导致安装失败

Deal Method:

  (1)在build.gralde中添加

1 android {
2     ...
3     dexOptions {
4         jumboMode true
5     }
6
7 }

  (2)删除项目根目录下的build文件夹,app目录下的build文件夹(两个一定要都删除,不然上面的参数不好使)

参考资料:

(1)http://developer.android.com/tools/building/multidex.html

(2)http://comments.gmane.org/gmane.comp.handhelds.android.adt.devel/4735

(3)http://stackoverflow.com/questions/18021901/android-studio-gradle-build-fails-execution-failed-for-task-dexdebug

(4)http://blog.csdn.net/goldenfish1919/article/details/33729679

(5)http://stackoverflow.com/questions/30515209/dexindexoverflowexception-cannot-merge-new-index-65772-into-a-non-jumbo-instruc

(6)http://www.cnblogs.com/frydsh/archive/2013/02/20/2918969.html

Android Studio解决问题:Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/bin/java'' finished with non-zero exit value 2

时间: 2024-10-12 13:57:18

Android Studio解决问题:Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/bin/java'' finished with non-zero exit value 2的相关文章

Android Stduio 发生 Process 'command 'somePath:java.exe'' finished with non-zero exit value 2 异常的解决办法

有时你会发现,在你使用Android Studio 进行编译的时候提示: Error:Execution failed for task ':demo:dexDebug'.> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'java.exe'' finished with non-zero exit value 2 为什么会这

Process 'command '/usr/lib/jvm/jdk1.8.0_25/bin/java'' finished with non-zero exit value 2

这个问题有两种可能,第一是jar包或者依赖冲突(版本冲突也算).第二是65535. 对于65535的问题,请看http://blog.csdn.net/t12x3456/article/details/40837287 Process 'command '/usr/lib/jvm/jdk1.8.0_25/bin/java'' finished with non-zero exit value 2

Android Studio将module变为library

本文来源你我学习网文章地址https://www.niwoxuexi.com/blog/android/article/244.html 我们在开发的时候如在在Android Studio中的module打包成library方便模块引用与团队共享我在这里有一个小案例演示一下 案例开发一个LogUtil日志打印类只做演示开发中没太大意义 如下图一个工程中有两个module 我们现在要把mylib module转化成library 第一.先修改mylib module下的build.gradle文件

android studio 和idea 导入library工程

idea 导入library方法 把工程Import成module后,具体的操作看图: 同样的,打开Project structure,点开你要作为library的module,然后点击android,在右边框的Library module前√打上. 选中你要引用的module,如下图操作红色框框起来的按钮即可. 弹出的对话框中选择你要引用的Library module(这边会出现几个module依赖于你把多少个module设置成Lirary module) 点OK后,你可以看到下图Export

Android Studio 提示Subversion command line client version is too old

错误:Android Studio 右上角提示 原因:网上资料, It's just misprint: must be "too new" Android Studio based on Intellij IDEA, Intellij 14.1.4 cannot use svn 1.9.0 解决:把SVN换到低版本1.8 就好了

Java 常用的日志工具——JDK自带的java.util.logging包、APACHE 的log4j 与 slf4j日志处理接口

考虑以下情况: (1).根据程序输出可以很好地帮助程序员调试程序.在编写小型程序时,可以在程序中不断增加 System.out.print() 语句来查看程序运行状态:在大型系统中,显然这一做法非常不对,可以考虑将调试信息通过日志处理工具,输出到一个文本文件中,然后查看文件内容. (2).在系统开始线上运行后,系统管理人员需要获知系统的运行情况,包括但不限于系统开始运行时间.系统关闭时间.系统目前处理任务等,这些状态需要输出到一个经过格式化的日志文件中,供管理人员查看: (3).在编写系统,甚至

Android studio 解决问题Default Activity not found

昨天新建的项目,今天打开的时候,发现无法编译了.编译按钮无法点击,必须edit configuration.并且报错 default activity not found 从网上搜索了解决方案. 第一步:在AndroidMainfest.xml文件中, 将设置成main的activity的路径.写成绝对路径,也就是需要packageName.className的方式补全 之后再去测试.如果不可以 在进行第二步: 在main activity的intent-filter中添加如下属性 <actio

Java Virtual Machine (JVM), Difference JDK, JRE &amp; JVM – Core Java

By Chaitanya Singh | Filed Under: Learn Java Java is a high level programming language. A program written in high level language cannot be run on any machine directly. First, it needs to be translated into that particular machine language. The javac

mac android studio 编译时报Class JavaLaunchHelper is implemented in both

Class JavaLaunchHelper is implemented in both /Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/bin/java and /Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/jre/lib/libinstrument.dylib. One of the two will be used. Which