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



在我的情況下,解決方案是關閉Android Studio並殺死非常大(1.2 GB)的java進程。 在此之後,我的項目正常運行(OS X山獅,Android Studio 1.2.2,iMac中2011年4GB公羊)。




那麼可以有很多與之相關的問題。 首先檢查你是否搞砸了一些文件的展示位置。 例如,我所做的是我在anim文件夾中放置非xml文件,這是不允許的。 那麼檢查一下這樣的事情是否也發生在你身上。




1.清理工程,檢查工作是否正常

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

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

android {

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

}



我有同樣的問題,在嘗試了每個答案之後,我注意到我重命名的包在導入它的類中沒有被重命名。 我修好了名字,馬上解決了這個問題。




刪除行:

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



compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }

將此添加到您的Gradle生成。 它為我工作




實驗我找到了方法:

應用程序擴展應用程序而不是 MultiDexApplication

並刪除

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

從gradle.properties




這個解決方案適用於我

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




您必須更新SDK管理器(支持庫等)中的所有塊,所有非更新的庫和包。 在此之後,您必須與項目同步gradle文件,並歡呼!




清理和重建項目對我來說很有效。 在Android studio中:

Build -> Clean Project 
Build -> Rebuild Project

參考鏈接




也許你可以改變你的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”,問題就解決了。




有很多原因導致

com.android.build.api.transform.TransformException:com.android.ide.common.process.ProcessException:org.gradle.process.internal.ExecException:進程'command'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 *;
}




給這個母親一個機會:

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

不要忘了書籤這個