Android java.exe以非零退出值1结束

时间:2015-03-14 03:31:56

标签: android gradle compiler-errors jvm

我已经尝试过查看类似的但没有解决方案。我以前运行的应用程序没有问题,但我的新应用程序突然开始给我带来问题。当我试图说它时总是失败:

Error:Execution failed for task ':app:preDexDebug'.
com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files (x86)\Java\jdk1.7.0_67\bin\java.exe'' finished with non-zero exit value 1

以下是控制台显示的内容:

Executing tasks: [:app:assembleDebug]

Configuration on demand is an incubating feature.
:app:preBuild UP-TO-DATE
:app:preDebugBuild UP-TO-DATE
:app:compileDebugNdk UP-TO-DATE
:app:checkDebugManifest
:app:preReleaseBuild UP-TO-DATE
:app:prepareComAndroidSupportSupportV42200Library UP-TO-DATE
:app:prepareDebugDependencies
:app:compileDebugAidl UP-TO-DATE
:app:compileDebugRenderscript UP-TO-DATE
:app:generateDebugBuildConfig UP-TO-DATE
:app:generateDebugAssets UP-TO-DATE
:app:mergeDebugAssets UP-TO-DATE
:app:generateDebugResValues UP-TO-DATE
:app:generateDebugResources UP-TO-DATE
:app:mergeDebugResources UP-TO-DATE
:app:processDebugManifest UP-TO-DATE
:app:processDebugResources UP-TO-DATE
:app:generateDebugSources UP-TO-DATE
:app:compileDebugJava UP-TO-DATE
:app:preDexDebug
AGPBI: {"kind":"SIMPLE","text":"Error: Could not create the Java Virtual        Machine.","position":{},"original":"Error: Could not create the Java Virtual Machine."}
AGPBI: {"kind":"SIMPLE","text":"Error: A fatal exception has occurred. Program will exit.","position":{},"original":"Error: A fatal exception has occurred. Program will exit."}

AGPBI: {"kind":"SIMPLE","text":"Error: Could not create the Java Virtual Machine.","position":{},"original":"Error: Could not create the Java Virtual Machine."}
AGPBI: {"kind":"SIMPLE","text":"Error: A fatal exception has occurred. Program will exit.","position":{},"original":"Error: A fatal exception has occurred. Program will exit."}


FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:preDexDebug'.
com.android.ide.common.process.ProcessException:     org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files (x86)\Java\jdk1.7.0_67\bin\java.exe'' finished with non-zero exit value 1

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 2.614 secs

AGPBI: {"kind":"SIMPLE","text":"Error: Could not create the Java Virtual Machine.","position":{},"original":"Error: Could not create the Java Virtual Machine."}
AGPBI: {"kind":"SIMPLE","text":"Error: A fatal exception has occurred. Program will exit.","position":{},"original":"Error: A fatal exception has occurred. Program will exit."}

这个应用程序很简单,我没有从库存布局改变它。它仅适用于棒棒糖,仅使用库存功能。这是build.gradle:

apply plugin: 'com.android.application'
android {
compileSdkVersion 22
buildToolsVersion "22.0.0"

defaultConfig {
    applicationId "com.package.app"
    minSdkVersion 21
    targetSdkVersion 22
    versionCode 1
    versionName "1.0"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:support-v4:22.0.0'
}

27 个答案:

答案 0 :(得分:54)

遇到了由于可绘制资源冲突而导致的相同错误。我做了一个干净的项目,不再遇到错误。

答案 1 :(得分:16)

经过大量的冲浪,我发现问题是GC开销(内存不足)。通过将以下代码添加到我的build.gradle节省了我的一天。

android {

    dexOptions {
        incremental = true;
        preDexLibraries = false
        javaMaxHeapSize "4g" // 2g should be also OK
    }

}

参考 - ProcessException: org.gradle.process.internal.ExecException finished with non-zero exit value 2

答案 2 :(得分:12)

我的Java安装一定是个问题。我删除了所有Java(C://程序文件/ Java / jdk)和jre文件夹的痕迹,并从official page重新安装它,现在它工作正常。

答案 3 :(得分:12)

也许你可以改变你的buildToolsVersion num。

这是我的问题:

Error:Execution failed for task ':app:transformClassesWithDexForDebug'.
> com.android.build.api.transform.TransformException: java.lang.RuntimeException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'D:\ProgramTools\Java\jdk1.7.0_79\bin\java.exe'' finished with non-zero exit value 1

我的build.gradle:

android {
    compileSdkVersion 23
    buildToolsVersion "24.0.0"

    defaultConfig {
        applicationId "com.pioneers.recyclerviewitemanimation"
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

我只是将buildToolsVersion更改为buildToolsVersion“23.0.2”,问题就解决了。

答案 4 :(得分:8)

在我的情况下,解决方案是关闭Android Studio并杀死java进程,这是非常大的(1.2 GB)。在此之后,我的项目正常运行(OS X Mount Lion,Android Studio 1.2.2,iMac Mid 2011 4GB Ram)。

答案 5 :(得分:7)

解决方案

1.清洁项目并检查其工作情况

2.关闭所有垃圾任务后,重新启动android studio

3.如果上述两件事都无效,请在gradle.build文件中添加

android {

    dexOptions {
        incremental = true;
        preDexLibraries = false
        javaMaxHeapSize "4g" 
    }

}

答案 6 :(得分:6)

将库 icepick 添加到我的gradle依赖项后,我遇到了同样的问题。删除依赖项后,一切似乎都没问题。一旦我知道为什么会出现这个问题,我就会再次写在这里

答案 7 :(得分:3)

使用选项assembleandroidtest,如下图所示。因此,您可以找到有关发生错误的更多信息:

enter image description here

答案 8 :(得分:3)

将jar文件添加到项目的lib文件夹中,并在将同步gradle后将其添加到build.gradle文件中作为 compile'path示例'之后,添加另一行作为编译文件('libs / example.jar')。您只需要删除先前添加到build.gradle文件中的行,即gradle sync之后的compile'path example'。您还需要删除行编译fileTree(目录:'libs',包含:'* .jar')

答案 9 :(得分:3)

compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }

将此添加到您的gradle Build中。它对我有用

答案 10 :(得分:3)

我的答案是为构建过程释放内存,关闭程序或重启机器(win10似乎管理的内存比win7差)

为什么它适合我?

在构建期间,android studio找不到足够的内存来编译,但它没有显示任何错误。 :app:preDexDebug错误发生在我尝试将已编译的应用程序上传到手机时。

有时我可以通过这一点(没有应用程序:preDexDebug错误),但在android上运行应用程序时,我得到了“ClassNotFound”异常。这是发现android studio没有在构建期间编译所有文件的线索,因为内存不足(win10要求我关闭android工作室以在构建期间节省内存),即使IDE向我显示构建成功

答案 11 :(得分:3)

清理和重建项目对我有用。在Android工作室:

Build -> Clean Project 
Build -> Rebuild Project

参考link

答案 12 :(得分:1)

我尝试了几乎所有内容,直到我尝试从命令行中的错误运行脚本:

dx.bat -JXmx1536m --dex --output \build\intermediates\pre-dexed\debug\classes-01b5c6cd66151f573da9773c18af55d10736a24e.jar build\intermediates\exploded-aar\aaa-release\classes.jar
Error occurred during initialization of VM
Could not reserve enough space for object heap
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

然后我在gradle脚本中注释掉了开发人员的内存设置:

//        javaMaxHeapSize "1536m"

我能够传递此错误。我需要增加笔记本电脑的RAM。

答案 13 :(得分:1)

实验我找到了方法:

应用扩展应用 MultiDexApplication

并删除

org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

来自gradle.properties

答案 14 :(得分:1)

此解决方案适合我

安装Java JDK 8.

然后,转到工具 - >选项 - > Apache Cordova工具 - >环境变量覆盖并将JDK的路径设置为“C:\ Program Files \ java \ jdk1.8.0_121”以获取Java 8而不是Java 7。

了解更多信息http://www.developersite.org/103-141954-android

答案 15 :(得分:1)

在我的案例中,将Java Max Heap Size从2g设置为1g。

将以下内容添加到应用程序模块的build.gradle文件

android {
    dexOptions {
        javaMaxHeapSize "1g"
    }
}

答案 16 :(得分:1)

您必须更新SDK Manager(支持库等)中的所有块,所有未更新的库和包。在此之后,您必须将gradle文件与项目同步并高兴!

答案 17 :(得分:0)

我刚刚遇到了同样的问题,结果是由我的某个模块中的错误attrs.xml文件引起的。该文件最初为我的一个自定义视图有两个可设置的属性,但是当我发现我不再需要它时,我删除了一个。但是,这显然未在IDE中正确注册,因此在无法找到属性时构建失败。

我的解决方案是重新添加属性,运行clean project之后构建成功,我可以再次成功删除该属性而不会出现任何其他问题。

希望这有助于某人。

答案 18 :(得分:0)

给这位母亲一个机会:

 dependencies {
        classpath 'com.android.tools.build:gradle:1.4.0-beta6'
    }

别忘了给this添加书签。

答案 19 :(得分:0)

导致

的原因很多
  

com.android.build.api.transform.TransformException:   com.android.ide.common.process.ProcessException:   org.gradle.process.internal.ExecException:进程'命令   ' C:\ Program Files \ Java \ jdk1.8.0_60 \ bin \ java.exe''完成了   非零退出值1

如果您没有达到dex限制,但是您收到的错误类似于Error:com.android.dx.cf.iface.ParseException: name already added: string{"a"}

尝试禁用proguard,如果它设法编译没有问题,那么你需要找出导致它的库并将其添加到proguard-rules.pro文件

就我而言,当我将compile 'com.google.android.gms:play-services-ads:8.3.0'更新为compile 'com.google.android.gms:play-services-ads:8.4.0'

时会出现此问题

其中一个解决方法是将其添加到proguard-rules.pro文件

## Google AdMob specific rules ##
## https://developers.google.com/admob/android/quick-start ##

-keep public class com.google.ads.** {
   public *;
}

Android Studio

答案 20 :(得分:0)

我用开玩笑的方式解决了这个问题。我有两个名为startDlStartDl的班级。我只是将其中一个更改为StartDownload,我的问题就解决了。资源的名称也已经在项目中的任何资源中保留。只需将相似的名称重命名为不同的名称。

答案 21 :(得分:0)

这可能是由于您的应用超过65k方法计数,从而导致dex错误。除了在您的应用中启用多索引之外,没有解决方案。

答案 22 :(得分:0)

我有同样的问题,在尝试了这里的每个答案之后,我注意到我重命名的包没有在导入它的类中重命名。我修好了名字并立即解决了问题。

答案 23 :(得分:0)

我将项目从笔记本电脑转移到Android Studio中的桌面后出现此错误。

我的解决方案是重新启动Android Studio,然后清理项目并最终执行项目。

答案 24 :(得分:-1)

您需要做的就是杀死一些正在运行的进程并释放内存(RAM)上的空间。您可以尝试关闭一些高内存消耗程序。您也可以尝试重新启动Android Studio。它对我有用。

答案 25 :(得分:-1)

对我而言,这有效:

HashMap<String, String> params2 = new HashMap<String, String>();
        params.put("name", "Val");
        params.put("subject", "Test Subject");

        JsonObjectRequest jsObjRequest = new JsonObjectRequest
                (Request.Method.POST, Constants.CLOUD_URL, new JSONObject(params2), new Response.Listener<JSONObject>() {

                    @Override
                    public void onResponse(JSONObject response) {
                        mView.showMessage("Response: " + response.toString());
                    }
                }, new Response.ErrorListener() {

                    @Override
                    public void onErrorResponse(VolleyError error) {
                        // TODO Auto-generated method stub
                        mView.showMessage(error.getMessage());

                    }
                });

        // Access the RequestQueue through your singleton class.
        VolleySingleton.getInstance(mContext).addToRequestQueue(jsObjRequest);

答案 26 :(得分:-2)

删除该行:

('com.android.support:support-v4:22.0.0')

来自依赖关系(build.gradle):

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:support-v4:22.0.0'
}