Android java.exe zakończył się z niezerową wartością wyjścia 1 [zamknięte]

117

Próbowałem spojrzeć na podobne i żadne rozwiązanie nie zadziałało. Wcześniej uruchamiałem aplikacje bez problemu, ale moja nowa aplikacja nagle zaczęła sprawiać mi problemy. Zawsze kończy się niepowodzeniem, gdy próbuję go uruchomić, mówiąc:

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

Oto co wyświetliła się konsola:

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."}

Ta aplikacja jest bardzo prosta i nie zmieniłem jej zbytnio od układu zapasów. Jest przeznaczony tylko dla Lollipopa i wykorzystuje tylko funkcje standardowe. Oto 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'
}
Skraj
źródło
Zauważ, że jest to problem z budowaniem aplikacji, a nie z jej uruchomieniem - chociaż oczywiście w pewnym momencie musisz pomyślnie zbudować, zanim będziesz mógł ją uruchomić.
Chris Stratton,
@Rand, czy znalazłeś jakieś rozwiązanie? Mam ten sam problem, mam konfigurację 32-bitową, myślę, że to jest problem.
Narendrasinh Dodiya
Ten błąd jest dość irytujący i wydaje się, że nic nie pomaga -.-
Martin Pfeffer
Przeszukaj plik layout.xml, znajdź go android:shadowRadius="4dp" i usuń.
meyasir

Odpowiedzi:

56

Wystąpił ten sam błąd, który był spowodowany konfliktowymi zasobami do rysowania. Wykonałem czysty projekt i błąd już nie występował.

Kenneth
źródło
to działało dla mnie. miałem błąd wyjścia 2
hadi
1
Wh00t, takie proste! Miałem błąd wyjścia 1 .. To musiała być pomyłka pomiędzy drużyną przez git
Sindri Þór
Podobnie jak SindriÞór, miałem również błąd wyjścia 1 i to rozwiązało problem. Ostatnia godzina to tylko bóle głowy, dzięki @Kennth!
davewoodhall
1
@Kenneth nie działa ..!
user5716019
to nie działa dla mnie
jose920405
16

Po długim surfowaniu odkryłem, że problemem jest narzut GC (brak pamięci). Dodając poniższy kod do mojego build.gradle uratowałem mój dzień.

android {

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

}

odwołanie - ProcessException: org.gradle.process.internal.ExecException zakończone niezerową wartością wyjścia 2

Duke1992
źródło
Co g? Gigabyte?
Subby,
@Subby Jest to tylko opcja określenia maksymalnej puli alokacji pamięci dla wirtualnej maszyny języka Java (JVM) na potrzeby operacji dex. ref - stackoverflow.com/questions/33750404/ ...
Duke1992
2
DexOptions.incrementaljest przestarzały i zostanie usunięty pod koniec 2018 r.
HendraWD
13

To musiał być problem z moją instalacją Java. Usunąłem wszystkie ślady folderów Java (C: // program files / Java / jdk) i jre i ponownie zainstalowałem je z oficjalnej strony i teraz działa dobrze.

Skraj
źródło
1
Jak to zrobiłeś. Proszę podać więcej szczegółów
Sami Eltamawy
1
Przejdź do panelu sterowania i odinstaluj wszystkie wersje Javy. Następnie zainstaluj ponownie najnowszą.
Rand
1
nie działa dla mnie ..
Alex Kapustian
Możesz spróbować „JavaRa”, aby usunąć ślady Java. Nie jestem pewien, czy to pomaga.
programista Androida
Jeśli masz zainstalowanych wiele JDK (z jakiegokolwiek powodu), upewnij się, że studio używa właściwego: stackoverflow.com/a/30631386/1544046
JCricket
12

Może możesz zmienić numer buildToolsVersion.

To jest mój problem:

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

mój 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'
        }
    }
}

Po prostu zmieniam buildToolsVersion na buildToolsVersion „23.0.2” i problem został rozwiązany.

Shaun
źródło
To też było moje rozwiązanie, po prostu sprawdzam stary projekt i porównałem plik build.gradle i ustawiam tę samą wartość buildToolsVersion „23.0.1”
Youri
pracował dla mnie .... :-) Problem był, kiedy tworzyłem nowy projekt.
Rumit Patel
11

Problem z pamięcią RAM . Podobną wiadomość otrzymałem w moim Messages Gradle Build

Error:Execution failed for task ':app:dexDebug'.
> com.android.ide.common.process.ProcessException: org.gradle.process.internal. 
ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0_45\bin\java.exe'' 
finished with non-zero exit value 1

Dlaczego: nie miałem wolnej pamięci RAM na moim laptopie z systemem operacyjnym Windows 8.1.

Rozwiązanie: zamknąłem kilka programów, których nie potrzebuję. Potem miałem więcej wolnej pamięci RAM, a mój projekt został zbudowany w Android Studio.

Malder
źródło
1
tak, przed błędem wyświetla się okno dialogowe "za mało pamięci ..." Nie pamiętam wyciągu wiadomości
vuhung3990
8

W moim przypadku rozwiązaniem było zamknięcie Android Studio i zabicie procesów java, które były bardzo duże (1,2 GB). Po tym mój projekt działa normalnie (OS X Mount Lion, Android Studio 1.2.2, iMac Mid 2011 4GB Ram).

Misael Barreto
źródło
Nawet o tym nie pomyślał. Pracował dla mnie. Po prostu ponowne uruchomienie AS (jak 4 razy) nic nie dało.
gatlingxyz
Dzięki! Zadziałało jak urok.
jackcar 31.07.15
Mac spowodował awarię mojego logowania (nie było to pełne ponowne uruchomienie). Po ponownym zalogowaniu wszystkie uruchomione aplikacje uruchomiły się ponownie, wprowadzając proces Java w dziwny stan zombie (moje przypuszczenie). Usunięcie procesu Java w menedżerze aktywności rozwiązało problem. Dzięki!
andymeadows
Dzięki! Rozwiązaniem jest zamknięcie Android Studio.
pengguang001
7

Rozwiązanie

1. Po prostu wyczyść projekt i sprawdź, czy działa

2. Po prostu uruchom ponownie studio Android po zamknięciu wszystkich zadań śmieci

3. Jeśli obie powyższe rzeczy nie działają, dodaj to w pliku gradle.build

android {

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

}
SHINTO JOSEPH
źródło
ładne i 3 działające.
Surendar D,
6

Miałem ten sam problem po dodaniu biblioteki icepick do moich zależności gradle. Po usunięciu zależności wszystko wydaje się być w porządku. Jak tylko dowiem się, dlaczego pojawił się ten problem, napiszę tutaj ponownie

LuckyMalaka
źródło
4
To samo tutaj. Rozwiązaniem było używać providedzamiast compiledo processoruzależnienia. Zobacz ten bilet .
theblang
5

Użyj opcji assembleandroidtestjak na obrazku poniżej. Możesz więc dowiedzieć się więcej o wystąpieniu błędu:

wprowadź opis obrazu tutaj

Iman Marashi
źródło
Niezłe rozwiązanie !!! znaleźć dokładny problem !!!
Ranjith Kumar
Dzięki, jest doskonały
Prinkal Kumar
3

Po dodaniu pliku jar do folderu lib projektu i po dodaniu go do pliku build.gradle jako przykład ścieżki kompilacji, podczas synchronizacji gradle dodaje dodatkową linię jako pliki kompilacji („libs / example.jar”) . Musisz tylko usunąć linię, którą wcześniej dodałeś do pliku build.gradle, tj. Przykład compile'path 'po synchronizacji gradle. Musisz także usunąć wiersz kompilacji fileTree (dir: 'libs', include: '* .jar')

Punit Sharma
źródło
W twoim przypadku po prostu usuń wiersz kompilacji fileTree (dir: 'libs', include: ['* .jar']). Mam nadzieję, że to zadziała dobrze.
Punit Sharma
U mnie też to zadziałało. Nie wiem, dlaczego jest to dla mnie takie trudne, dodawanie zależności i zarządzanie nimi jest o wiele prostsze.
JMStudios.jrichardson
3
compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }

dodaj to do swojego Grade Build. U mnie to zadziałało

Ashok Varma
źródło
2
to nie działa dla mnie
letsdev-cwack
@ letsdev-cwack czy miałeś ten sam problem?
Ashok Varma
3

Odpowiedzią dla mnie było zwolnienie pamięci na proces kompilacji, zamknięcie programowania lub ponowne uruchomienie maszyny (win10 wydaje się zarządzać pamięcią gorzej niż win7)

Dlaczego to naprawiłem?

Podczas kompilacji studio Android nie znajduje wystarczającej ilości pamięci do kompilacji, ale nie wyświetla żadnego błędu . Błąd: app: preDexDebug wystąpił właśnie wtedy, gdy próbowałem przesłać skompilowaną aplikację na telefon.

Czasami mogłem przejść przez ten punkt (brak app: błąd preDexDebug), ale podczas uruchamiania aplikacji na Androidzie dostałem wyjątki „ClassNotFound”. To była wskazówka, aby odkryć, że Android Studio nie kompilowało wszystkich moich plików podczas kompilacji z powodu braku pamięci (win10 poprosił mnie o zamknięcie Android Studio, aby zaoszczędzić pamięć podczas kompilacji), mimo że IDE pokazało mi, że kompilacja się powiodła .

Fabio de Toledo
źródło
To bardziej przypomina pytanie o wyjątki lub komentarz niż odpowiedź. Jeśli to jest odpowiedź, powiedz, w jaki sposób naprawiłeś wszystkie wyjątki, o których wspominasz, jeśli jest to nowe pytanie, zadaj nowe pytanie dotyczące poprzedniego, które otrzymujesz.
Ram
Dziękuję za opinię, starałem się wyjaśnić. Nie opanowałem angielskiego, ale spędziłem kilka godzin nad tym problemem i postanowiłem opublikować to, co zadziałało. ;-)
Fabio de Toledo
3

U mnie działa czyszczenie i przebudowa projektu. W Android Studio:

Build -> Clean Project 
Build -> Rebuild Project

patrz odnośnik

huu duy
źródło
1
to nie działa dla mnie :(
Kairi San
1

Próbowałem praktycznie wszystkiego, dopóki nie spróbowałem uruchomić skryptu z błędu w linii poleceń:

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.

Następnie skomentowałem ustawienie pamięci programisty w skrypcie gradle:

//        javaMaxHeapSize "1536m"

i udało mi się przekazać ten błąd. Muszę zwiększyć pamięć RAM w moim laptopie.

Leos Literak
źródło
jak ustawiłeś javaMaxHeapSize? Ustawiłem go za pomocą gradle.properties, ale działa tylko dla demona gradle.
Sarowar
1
javaMaxHeapSize jest właściwością w ramach android.dexOptions. Sam miałem 3 GB w instalacji Win10 z 16 GB pamięci RAM. Zmniejszenie do 1 lub usunięcie go naprawiło (jak na ironię) dla mnie
Nilzor
Tak, o dziwo również zmniejszenie go do 1 GB w moim projekcie z 3 GB działało. Mam dużo pamięci RAM, więc bardzo dziwnie.
zaifrun
1

Należy zaktualizować wszystkie bloki w Menedżerze SDK (Biblioteka wsparcia itp.), Wszystkie niezaktualizowane biblioteki i pakiety. Po tym musisz zsynchronizować pliki gradle z projektem i ciesz się!

Алешин Михаил
źródło
1

W moim przypadku zadziałało ustawienie Java Max Heap Size od 2g do 1g.

Dodaj następujące elementy do pliku build.gradle modułu aplikacji

android {
    dexOptions {
        javaMaxHeapSize "1g"
    }
}
Shahidul
źródło
1

To rozwiązanie działa dla mnie

Zainstaluj Java JDK 8.

Następnie przejdź do Narzędzia-> Opcje -> Narzędzia dla Apache Cordova-> Zastąpienia zmiennych środowiskowych i ustaw ścieżkę do swojego JDK na „C: \ Program Files \ java \ jdk1.8.0_121”, aby uzyskać Java 8 zamiast Java 7.

aby uzyskać więcej informacji http://www.developersite.org/103-141954-android

aditya shrivastava
źródło
1

Eksperymentalne znalazłem sposób:

Aplikacja rozszerza aplikację, a nie MultiDexApplication

i usuń

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

z gradle.properties

Yvgen
źródło
0

Otrzymałem ten błąd po przesłaniu projektu z laptopa na komputer stacjonarny w Android Studio.

Moim rozwiązaniem było ponowne uruchomienie Android Studio, następnie wyczyszczenie projektu i na koniec wykonanie projektu.

BhavikUp
źródło
0

Miałem ten sam problem, po wypróbowaniu każdej z odpowiedzi tutaj zauważyłem, że nazwa pakietu, którego nazwę zmieniłem, nie została zmieniona w klasie, która go zaimportowała. Poprawiłem nazwę i natychmiast rozwiązałem problem.

Adri Stanchev
źródło
0

Jest to prawdopodobnie spowodowane tym, że Twoja aplikacja przekracza liczbę metod 65k, co powoduje błąd dex. Nie ma innego rozwiązania niż włączenie multidexingu w Twojej aplikacji.

IgorGanapolsky
źródło
0

Cóż, może być z tym związanych wiele problemów. Przede wszystkim sprawdź, czy nie zepsułeś niektórych miejsc docelowych plików. na przykład umieściłem plik inny niż xml w folderze anim, co jest niedozwolone. Sprawdź więc, czy ci się to przytrafiło.

Bhaskar Gurram
źródło
0

Czy włączyłeś multidexing ?. Rozszerz swoją główną klasę Application o MultiDexApplication. Otrzymałem dodatkowy komunikat o wyjątku przed błędem. Są one następujące.

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

To wyraźnie wskazuje, że błąd wystąpił z powodu braku pamięci. Spróbuj wykonać następujące czynności:

  1. rozszerz swoją główną klasę Application za pomocą MultiDexApplication.
  2. zamknij nieużywane aplikacje w tle i uruchom ponownie Android Studio.

To załatwi sprawę;)

Saamzzz
źródło
0

Daj tej mamie szansę:

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

Nie zapomnij dodać tego do zakładek .

Martin Pfeffer
źródło
0

Miałem teraz ten sam problem i okazało się, że jest on spowodowany wadliwym attrs.xmlplikiem w jednym z moich modułów. Plik miał początkowo dwa atrybuty do stylizacji dla jednego z moich widoków niestandardowych, ale jeden usunąłem, gdy okazało się, że już go nie potrzebuję. Najwyraźniej nie zostało to jednak poprawnie zarejestrowane w IDE, więc kompilacja nie powiodła się, gdy nie można było znaleźć atrybutu.

Rozwiązaniem dla mnie było ponowne dodanie atrybutu, uruchomienie a clean projectpo którym kompilacja się powiodła i mogłem z powodzeniem usunąć atrybut ponownie bez dalszych problemów.

Mam nadzieję, że to komuś pomoże.

Teun Kooijman
źródło
0

Jest wiele powodów, dla których to prowadzi

com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process „command” C: \ Program Files \ Java \ jdk1.8.0_60 \ bin \ java.exe '' zakończył się z niezerową wartością wyjścia 1

Jeśli nie osiągasz limitu dex, ale otrzymujesz błąd podobny do tego Error:com.android.dx.cf.iface.ParseException: name already added: string{"a"}

Spróbuj wyłączyć program proguard, jeśli uda mu się skompilować bez problemu, będziesz musiał dowiedzieć się, która biblioteka spowodowała to i dodać ją do proguard-rules.propliku

W moim przypadku ten problem występuje, gdy zaktualizowałem compile 'com.google.android.gms:play-services-ads:8.3.0'docompile 'com.google.android.gms:play-services-ads:8.4.0'

Jednym z obejść jest dodanie tego do proguard-rules.propliku

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

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

Android Studio

xDragonZ
źródło
0

Rozwiązuję ten problem w żartobliwy sposób. Mam dwie klasy z imionami startDli StartDl. Po prostu zmieniam jeden z nich StartDownloadi mój problem został rozwiązany. również zasoby mogą mieć nazwę, która jest już zarezerwowana dla innego zasobu w projekcie. po prostu zmień nazwy podobnych nazw na inne.

Sadeq Shajary
źródło
-1

Wszystko, co musisz zrobić, to zabić część uruchomionego procesu i zwolnić miejsce w pamięci (RAM). Możesz spróbować zamknąć niektóre programy zużywające dużo pamięci. Możesz także spróbować ponownie uruchomić Android Studio. U mnie to zadziałało.

Vikky
źródło
-2

Usuń linię:

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

Z zależności (w build.gradle):

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:support-v4:22.0.0'
}
Shehroz Saleem
źródło
12
Jak myślisz, dlaczego to zadziała, wyjaśnij, proszę, abyśmy zrozumieli
Aman Alam
-2

U mnie to działa:

defaultConfig {
    multiDexEnabled true
}
Ali Akram
źródło