Android java.exe完成非零退出值1


Answers

經過大量的衝浪,我發現問題是GC開銷(內存不足)。 通過添加下面的代碼到我的build.gradle保存了我的一天。

android {

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

}

參考 - ProcessException:org.gradle.process.internal.ExecException以非零的退出值2結束

Question

我試過看類似的,沒有解決方案的工作。 我以前運行的應用程序沒有問題,但我的新應用程序突然開始給我提出問題。 當我嘗試運行它時,它總是失敗:

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'
}



我嘗試了幾乎所有的東西,直到我嘗試從命令行中的錯誤中運行腳本:

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"

我能夠通過這個錯誤。 我需要在筆記本電腦中增加內存。




也許你可以改變你的buildToolsVersion編號。

這是我的問題:

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”,問題就解決了。




你是否啟用了multidexing ?. 使用MultiDexApplication擴展您的主應用程序類。 在錯誤發生之前,我收到了額外的異常消息。 他們如下。

Uncaught translation error: java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: GC overhead limit exceeded

Uncaught translation error: java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: Java heap space
2 errors; aborting

這清楚地表明錯誤是由於內存不足造成的。 嘗試以下操作:

  1. 使用MultiDexApplication擴展主應用程序類。
  2. 關閉未使用的應用程序並重新啟動Android Studio。

這將做到這一點;)




就我而言,解決方案是關閉Android Studio並殺死非常大的Java進程(1.2 GB)。 在此之後,我的項目正常運行(OS X Mount Lion,Android Studio 1.2.2,iMac Mid 2011 4GB Ram)。




1.清理項目並檢查其工作與否

2.關閉所有垃圾任務後,重新啟動android studio

3.如果上述兩件事情都不起作用,請將其添加到gradle.build文件中

android {

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

}



你所要做的就是殺死一些正在運行的進程並釋放內存(RAM)上的空間。 您可以嘗試關閉一些高內存消耗程序。 您也可以嘗試重新啟動Android Studio。 它為我工作。




我剛才遇到了同樣的問題,結果證明是由我的一個模塊中有錯誤的attrs.xml文件引起的。 該文件最初為我的一個自定義視圖提供了兩個可調屬性,但是當我不再需要它時,我刪除了一個。 但是,顯然這並未在IDE中正確註冊,因此在找不到該屬性時生成失敗。

對我來說,解決方案是重新添加屬性,運行一個clean project ,然後構建成功,我可以再次成功地刪除該屬性,而不會再有任何問題。

希望這可以幫助某人。




對我來說,答案是將內存釋放到構建過程中,關閉程序或重新啟動機器(win10似乎管理內存比win7差)

為什麼它為我固定?

在構建過程中,android studio找不到足夠的內存進行編譯,但它不顯示任何錯誤 。 :app:preDexDebug錯誤是在我嘗試將編譯的應用上傳到手機時發生的。

有時我可以通過這一點(無應用程序:preDexDebug錯誤),但在Android上運行應用程序時,我得到了“ClassNotFound”異常。 這是發現android studio並沒有在編譯期間編譯我的所有文件的線索,因為缺乏內存(win10在編譯期間要求我關閉android studio以節省內存),儘管IDE向我展示了編譯成功。




這可能是由於您的應用程序超過了65k方法計數,從而導致dex錯誤。 沒有解決方案,除了在您的應用程序中啟用多重索引。




刪除該行:

('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'
}



這個解決方案適用於我

安裝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




在我的筆記本電腦上將我的項目傳輸到Android Studio中的桌面後出現此錯誤。

我的解決方案是重新啟動Android Studio,然後清理項目並最終執行該項目。




compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }

將此添加到您的Gradle Build中。 它為我工作




我用開玩笑的方式解決了這個問題。 我有兩個名字為startDlStartDl 。 我只是將其中一個更改為StartDownload並解決了我的問題。 也可以資源有一個名字已經被保留在項目中的任何資源。 只是將類似的名字重新命名為不同




Links