java.lang.NullPointerException (brak komunikatu o błędzie)

81

Wiem, że to moje pytanie było zadawane wiele razy i podążałem za większością odpowiedzi, ale żadna z nich nie pomogła. To jest mój problem, zawsze kiedy synchronizuję mój projekt, zawsze kończy się to niepowodzeniem. Oto jak wygląda konsola gradle:

Wykonywanie zadań: [: app: generationDebugSources,: app: generatedDebugAndroidTestSources,: app: mockableAndroidJar,: app: PreparatDebugUnitTestDependencies]

Konfiguracja na żądanie jest funkcją inkubującą. Przyrostowa kompilacja Java to funkcja inkubująca. : app: preBuild AKTUALNA DATA: aplikacja: preDebugBuild AKTUALNA DATA: aplikacja: checkDebugManifest: app: preReleaseBuild AKTUALNA DATA: app: PrzygotowanieComAndroidSupportAnimatedVectorDrawable2420Library AKTUALIZACJA DANYCH: app: przygotowanieComAndroid UP-TO-DATE: app: PrzygotowanieComAndroidSupportAnimatedVectorDrawable2420Library UP-TO-DATE: app: PrzygotowanieComAndroid Aplikacja: prepareComAndroidSupportDesign2420Library postępowy: ok: prepareComAndroidSupportMediarouterV72300Library postępowy: ok: prepareComAndroidSupportRecyclerviewV72420Library postępowy: ok: prepareComAndroidSupportSupportCompat2420Library postępowy: ok: prepareComAndroidSupportSupportCoreUi2420Library postępowy: ok: prepareComAndroidSupportSupportCoreUtils2420Library UP- TO-DATE: app: readyComAndroidSupportSupportFragment2420Library AKTUALNA DATA: aplikacja:

  • Co poszło nie tak: java.lang.NullPointerException (brak komunikatu o błędzie)

  • Spróbuj: Uruchom z opcją --stacktrace, aby uzyskać ślad stosu. Uruchom z opcją --info lub --debug, aby uzyskać więcej danych wyjściowych dziennika.

BUDOWA NIEUDANA

Całkowity czas: 7,518 sek

I to są moje zależności

dependencies {
   compile fileTree(dir: 'libs', include: ['*.jar'])

    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:appcompat-v7:24.2.0'
    compile 'com.android.support:design:24.2.0'
    compile 'com.google.android.gms:play-services:9.4.0'
    testCompile 'junit:junit:4.12'
    compile 'com.google.android.gms:play-services-location:9.4.0'
    compile 'com.google.android.gms:play-services-appindexing:9.4.0'
    compile 'com.google.firebase:firebase-messaging:9.2.0'
    compile 'com.google.firebase:firebase-database:9.0.2'
    compile 'com.firebase:firebase-client-android:2.4.0'
    compile 'com.google.firebase:firebase-core:9.4.0'
}

apply plugin: 'com.google.gms.google-services'

Jak rozwiązać ten problem?

sweetzyl pili
źródło
3
Właśnie miałem ten sam problem. Kompiluj -> Wyczyść projekt, a następnie uruchom ponownie.
w3bshark
czasami Android Studio nie identyfikuje błędów, takich jak. 1. błąd sintaxis, 2. nie znaleziono zasobów, 3. zmiany w kodzie .. i inne .. Nie znaleziono zmian w moim przypadku ..
marlonpya
@marlonpya, spójrz tutaj , problem najprawdopodobniej dotyczy gradle.properties.
chornge
Za każdym razem, gdy aktualizuję Android Studio, zdarzają się takie dziwne rzeczy. Czysta kompilacja w3bshark zadziałała dla mnie.
Dale

Odpowiedzi:

189

Usunąłem .gradle folderu z projektem i był w stanie odbudować go ponownie.

Uwaga: na wszelki wypadek wykonaj kopię zapasową.

rastik
źródło
Który plik gradle masz na myśli?
sweetzyl pili
6
W głównym folderze projektu znajduje się folder „.gradle”. Usuń go i uruchom ponownie Android Studio, zostanie odtworzony podczas kompilacji.
rastik
Czy spotkaliście się z czymś podobnym? ( stackoverflow.com/questions/39749380/ ... ). To z pewnością nie zadziałało dla mnie: / @rastik
Siddhant Rimal
nie mogę znaleźć żadnego folderu .gradle w folderze mojego projektu, tylko folder gradle, ale nie .gradle, używam MAC, any1 rozwiązać ten problem?
aznelite89
5
usuwanie .gradle nie działa żadnych innych rozwiązań? Widzę ten folder compileDebugJavaWithJavac w folderze app-tmp i ma on pusty folder o nazwie emptySourcePathRef ... projekt czyszczenia usuwa ten folder, więc zakładam, że to jest to, ale nadal pojawia się błąd
Aalap Patel
28

Ten problem powstał, gdy nagle system uruchomił się ponownie, a następnie plik gradle został uszkodzony. i ten uszkodzony plik został zapisany w pamięci podręcznej, więc musimy usunąć ten plik z Twojego projektu

your_project_path/.gradle/2.14.1/taskArtifacts

Zostanie ponownie wygenerowany.

Następnie uruchom ponownie studio Android i ponownie skompiluj projekt.

źródło: https://code.google.com/p/android/issues/detail?id=220741#c13

To działa dla mnie.

Kona Suresh
źródło
Uwaga: zamknij wszystkie okna projektów, aby ponownie uruchomić Android Studio, a nie tylko okno projektu.
Owoce
to działa dla mnie (pb z jonowym (Ionic CLI): 3.19.0) Wykonanie nie powiodło się dla zadania ': compileArmv7DebugJavaWithJavac'. > java.lang.NullPointerException (brak komunikatu o błędzie)
m50
3

Jeśli nadal masz ten problem, nawet po usunięciu folderu .gradle w ścieżce projektu, jak zasugerowano powyżej , wyłącz wszystkie procesy Java uruchomione w menedżerze zadań i spróbuj zaktualizować Android Studio .

Byłem w takiej samej sytuacji, ale teraz działa dobrze.

Mam nadzieję, że to pomoże!

Geraldo Neto
źródło
2

Mam ten sam problem, gdy wersja java to 1.9

jenv use java 1.8 

cały problem jest rozwiązany.

zhen She
źródło
1

Problem prawdopodobnie dotyczy pliku gradle.properties. Jeśli wpiszesz ./gradlew tasksterminal, zobaczysz błąd, o którym wspomniałeś, ale ./gradlew tasks --infopokaże więcej szczegółów na temat błędu. U mnie we wszystkich moich projektach był to ten sam komunikat o błędzie:

Java home is different.
Wanted: DefaultDaemonContext[uid=null,javaHome=/Library/Java/JavaVirtualMachines/jdk-10.jdk/Contents/Home,daemonRegistryDir=/Users/christian/.gradle/daemon,pid=66346,idleTimeout=null,daemonOpts=-XX:MaxPermSize=512m,-XX:+HeapDumpOnOutOfMemoryError,-Xmx1536m,-Dfile.encoding=UTF-8,-Duser.country=US,-Duser.language=en,-Duser.variant]
Actual: DefaultDaemonContext[uid=4bf81505-0eab-4f50-859a-8c9c616b97e5,javaHome=/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home,daemonRegistryDir=/Users/christian/.gradle/daemon,pid=65018,idleTimeout=10800000,daemonOpts=-XX:MaxPermSize=512m,-XX:+HeapDumpOnOutOfMemoryError,-Xmx1536m,-Dfile.encoding=UTF-8,-Duser.country=US,-Duser.language=en,-Duser.variant]

Rozwiązanie: (nie ma potrzeby edytowania .bash_profilelub obniżania wersji gradle ani usuwania gradle.folder ).

  • Dodaj org.gradle.java.home=pathgradle.properties. gdzie pathjest ścieżka java Android Studio (rzeczywista strona główna java podana w --infodzienniku). Dla mnie to /Applications/Android Studio.app/Contents/jre/jdk/Contents/Homedla ciebie ścieżka może być inna.

Tak wygląda mój plik gradle.properties po zmianie:

org.gradle.java.home=/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home
org.gradle.daemon=true 

Uwagi : Spacja między „ Android Studio ” w ścieżce jest zamierzona. Nie działa, jeśli jest używany znak podkreślenia. Znaki ucieczki \są dozwolone, ale nie są potrzebne:...Android\ Studio.app/Contents/jre....

Włączyłem również program uruchamiający kompilację demona, ale nie jest on potrzebny do uruchamiania jego zadań przez gradlew. Jeśli błąd wskaźnika zerowego jest inny, użyj, --infoaby wskazać właściwy kierunek.

Biegnę:

Android Studio 3.1.4 (on a Mac 10.13)
java version "10"
classpath 'com.android.tools.build:gradle:3.1.4' (dependency)

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

chornge
źródło
1
kiedy uruchamiam polecenie ./gradlew zadań, to nie pojawia się żaden problem, ale w czasie kompilacji pojawia się wspomniany problem.
Anuj
0
compile 'com.google.android.gms:play-services-location:9.4.0'
compile 'com.google.android.gms:play-services-appindexing:9.4.0'
compile 'com.google.firebase:firebase-messaging:9.2.0'
compile 'com.google.firebase:firebase-database:9.0.2'

Nie jestem pewien, czy to jest winowajca, ale masz tutaj niezły bałagan z używanymi wersjami. Spróbuj użyć najnowszych wersji lub przynajmniej takich samych dla wszystkich powiązanych komponentów.

To narzędzie może pomóc Ci zachować synchronizację w przyszłości: https://github.com/ben-manes/gradle-versions-plugin

Marcin Orłowski
źródło
0

Miałem podobny problem podczas importowania Firebase do mojego projektu. Przede wszystkim upewnij się, że poprawnie wykonałeś instrukcje samouczka i zaimportowałeś dostarczony plik .json do odpowiedniego katalogu.

Ponadto, ponieważ firebase v9.0 został zaimplementowany w usługach Google Play, więc aby Firebase działał poprawnie, upewnij się, że usługi Google Play są aktualne na testowanym urządzeniu,

Uważam również, że ta odpowiedź jest pomocna podczas rozwiązywania mojego problemu https://stackoverflow.com/a/37310513/6728099

sketch204
źródło
właściwie nawet zanim zaimportowałem Firebase, nadal ma ten sam błąd. Właśnie dodałem firebase, więc mogę przejść do mojego projektu. W rzeczywistości stworzyłem fałszywą aplikację, aby sprawdzić, czy poprawnie postępowałem zgodnie z samouczkiem. Zaktualizowałem również mój AS i SDK, ale to nie rozwiązało problemu.
sweetzyl pili
0

Usuń poniższe linie z zależności, ponieważ już kompilujesz pełną zależność usług odtwarzania

    compile 'com.google.android.gms:play-services-location:9.4.0'
    compile 'com.google.android.gms:play-services-appindexing:9.4.0'
Yogesh Rathi
źródło
1
Odbuduj swój projekt
Yogesh Rathi
Użyj firebase i usługi Play 9.0, używam i działa idealnie, więc czy możesz sprawdzić ponownie w wersji 9.0
Yogesh Rathi
Odbudowywałem wiele razy. Zamiast rozwiązać problem, dostał więcej NullPointerException: null.
sweetzyl pili
Czy zintegrowałeś bibliotekę obsługującą multidex
Yogesh Rathi
tak, zrobiłem to w ten sposób. defaultConfig {... multiDexEnabled true} buildTypes {release {minifyEnabled true proguardFiles getDefaultProguardFile ('proguard-android.txt'), 'proguard-rules.pro'}} Czy to prawda? A także sprawdziłem już wersję 9.0 usługi Play, a Firebase nadal wyświetla ten sam błąd.
sweetzyl pili
0

Sprawdź swoje app/build.gradle. Mój problem polegał 'na uzależnieniu.

Pablo Cegarra
źródło
0

Otrzymywałem NPE z powodu wersji jdk, obniżenie z 11 do 8 rozwiązało ten problem

Aby usunąć jdk 11

sudo rm -rf /Library/Java/JavaVirtualMachines/jdk-11.0.2.jdk

org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:kaptDebugKotlin'.
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:110)

Caused by: java.lang.NullPointerException
    at org.gradle.workers.internal.DefaultWorkerExecutor$2.transform(DefaultWorkerExecutor.java:164)
    at org.gradle.workers.internal.DefaultWorkerExecutor$2.transform(DefaultWorkerExecutor.java:161)
    at org.gradle.util.CollectionUtils.collect(CollectionUtils.java:204)
    at org.gradle.util.CollectionUtils.collect(CollectionUtils.java:187)
    at org.gradle.util.CollectionUtils.collect(CollectionUtils.java:191)
    at org.gradle.workers.internal.DefaultWorkerExecutor.getDaemonForkOptions(DefaultWorkerExecutor.java:161)
    at org.gradle.workers.internal.DefaultWorkerExecutor.submit(DefaultWorkerExecutor.java:96)
    at org.jetbrains.kotlin.gradle.internal.KaptWithoutKotlincTask.compile(KaptWithoutKotlincTask.kt:75)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
AntPachon
źródło
0

U mnie działało, aby usunąć pamięć podręczną Gradle na poziomie katalogu użytkownika: /Users/<username>/.gradle/cache . Ta --infoopcja wykazała tam niespójność.

Sandro
źródło