java.lang.NullPointerException (повідомлення про помилку немає)


81

Я знаю, що це моє запитання задавали багато разів, і я наслідував більшість відповідей, але жодне з них мені не допомогло. Отже, це моя проблема, коли я синхронізую свій проект, він завжди виходить з ладу. Ось як виглядає консоль gradle:

Виконання завдань: [: app: generirajDebugSources,: app: generirajDebugAndroidTestSources,: app: mockableAndroidJar,: app: prepaDebugUnitTestDependencies]

Конфігурація на вимогу - це інкубаційна функція. Додаткова компіляція Java - це інкубаційна особливість. : app: preBuild UP-TO-DATE: app: preDebugBuild UP-TO-DATE: app: checkDebugManifest: app: preReleaseBuild UP-TO-DATE: app: pripremaComAndroidSupportAnimatedVectorDrawable2420Library UP-TO-DATE: app: pripremaComPandroidDapTavPatPappDapBai додаток: prepareComAndroidSupportDesign2420Library UP-TO-DATE: додаток: prepareComAndroidSupportMediarouterV72300Library UP-TO-DATE: додаток: prepareComAndroidSupportRecyclerviewV72420Library UP-TO-DATE: додаток: prepareComAndroidSupportSupportCompat2420Library UP-TO-DATE: додаток: prepareComAndroidSupportSupportCoreUi2420Library UP-TO-DATE: додаток: prepareComAndroidSupportSupportCoreUtils2420Library UP- ДАТА: ДАТА: app: prepaComComAndroidSupportSupportFragment2420Бібліотека ДО ДАТИ: додаток:

  • Що пішло не так: java.lang.NullPointerException (повідомлення про помилку немає)

  • Спробуйте: Виконайте параметр --stacktrace, щоб отримати трасування стека. Запустіть параметр --info або --debug, щоб отримати більше вихідних даних журналу.

БУДІВНИК ПОМИЛ

Загальний час: 7,518 сек

І це мої залежності

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'

Як вирішити проблему?


3
Я мав те саме те саме зараз. Збірка -> Чистий проект, потім повтор спрацював у мене.
w3bshark

іноді Android Studio не визначає помилки, наприклад. 1. помилка синтаксису, 2.ресурси не знайдені, 3.зміни в коді .. та інші .. У моєму випадку змін не знайдено ..
marlonpya

@marlonpya погляньте тут , проблема, швидше за все, з gradle.properties.
chornge

Щоразу, коли я оновлюю Android Studio, трапляються такі дивні речі. Чиста збірка w3bshark у мене спрацювала.
Дейл

Відповіді:


189

Я видалив папку .gradle з проекту і зміг відновити її знову.

NB: Зробіть резервну копію, про всяк випадок.


Який файл gradle ви маєте на увазі?
sweetzyl pili

6
У кореневій папці вашого проекту є папка ".gradle". Видаліть його та перезапустіть Android Studio, він буде відтворений під час збірки.
rastik

Ви, хлопці, стикалися з чимось подібним? ( stackoverflow.com/questions/39749380/… ). Це, звичайно, не спрацювало для мене: / @rastik
Rimal

я не можу знайти жодної папки .gradle у папці мого проекту, лише папку gradle, але не .gradle, я використовую MAC, any1 вирішити це?
aznelite89

5
видалення .gradle не працює будь-які інші рішення? Я бачу цю папку compileDebugJavaWithJavac в папці app-tmp, і в ній є порожня папка з ім'ям emptySourcePathRef ... проект очищення видаляє цю папку, тому я припускаю, що це вона, але все-таки помилка з'являється
Aalap Patel

28

Ця проблема виникає під час раптового перезапуску системи, а потім пошкодження файлу gradle і цей пошкоджений файл кешований, тому нам потрібно видалити цей файл із вашого проекту

your_project_path/.gradle/2.14.1/taskArtifacts

Він буде відтворений знову.

Потім перезапустіть студію Android і повторно скомпілюйте проект.

джерело: https://code.google.com/p/android/issues/detail?id=220741#c13

Це спрацювало для мене.


Тільки примітка: перезапустіть вікно всіх проектів, щоб перезапустити Android Studio, а не лише вікно проекту.
Фрут

це працює для мене (pb з іонним (Ionic CLI): 3.19.0) Не вдалося виконати завдання ': compileArmv7DebugJavaWithJavac'. > java.lang.NullPointerException (без повідомлення про помилку)
m50

3

Якщо у вас все ще виникає ця проблема, навіть після видалення папки .gradle у шляху вашого проекту, як було запропоновано вище , вимкніть усі процеси Java, запущені в диспетчері завдань, і спробуйте оновити Android Studio .

Я був у тій же ситуації, але зараз це працює нормально.

Сподіваюся, це допоможе!


2

У мене така ж проблема, коли версія Java 1.9

jenv use java 1.8 

вся проблема вирішена.


1

Проблема, ймовірно, у файлі gradle.properties. Якщо ви вводите ./gradlew tasksтермінал, ви побачите помилку, про яку ви згадали, але ./gradlew tasks --infoвідображає докладнішу інформацію про помилку. Для мене у всіх моїх проектах це було одне і те ж повідомлення про помилку:

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]

Рішення: (немає необхідності редагувати .bash_profileабо знижувати gradle або видаляти gradle.folder ).

  • Додайте org.gradle.java.home=pathв gradle.properties. де pathшлях до Android Studio до Java (фактичний дім Java вказаний у --infoжурналі). Для мене це /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home, для вас шлях може бути іншим.

Ось так виглядає мій файл gradle.properties після зміни:

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

Примітки : Пробіл між " Android Studio " у шляху є навмисним, він не працює, якщо використовується підкреслення. Втеча символів \дозволена, але не потрібна:...Android\ Studio.app/Contents/jre....

Я також увімкнув запуску демона, але не потрібен gradlew для запуску своїх завдань. Якщо ваша помилка нульового вказівника відрізняється, використовуйте, --infoщоб направити вас у правильному напрямку.

Я бігаю:

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

Сподіваюся, це комусь допоможе!


1
коли я виконую завдання runnign ./gradlew, тоді я не отримую жодної проблеми, але під час збірки я отримую згадану проблему.
Ануй

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'

Не впевнений, що це винен, але у вас тут досить невпорядковано використані версії. Спробуйте використовувати останні версії або принаймні однакові для всіх пов'язаних компонентів.

Цей інструмент може допомогти вам синхронізуватися в майбутньому: https://github.com/ben-manes/gradle-versions-plugin


0

У мене була подібна проблема при імпорті Firebase у мій проект. Перш за все, переконайтеся, що ви правильно виконали інструкції та імпортували наданий файл .json у потрібний каталог.

Крім того, оскільки firebase v9.0 його впроваджено в сервіси google play, тому для належної роботи firebase переконайтеся, що сервіси Google play оновлені на пристрої, який ви тестуєте,

Я також знайшов цю відповідь корисною під час вирішення мого питання https://stackoverflow.com/a/37310513/6728099


насправді навіть до того, як я імпортував firebase, він все ще мав ту саму помилку. Я щойно додав firebase, щоб я міг продовжувати свій проект. Infact, я створив фіктивну програму, щоб перевірити, чи правильно я дотримувався навчального посібника. Я також оновив свою AS і SDK, але це не вирішило проблему.
sweetzyl pili

0

Видаліть рядки нижче із залежностей, тому що ви вже скомпілювали повну залежність служб відтворення

    compile 'com.google.android.gms:play-services-location:9.4.0'
    compile 'com.google.android.gms:play-services-appindexing:9.4.0'

1
Відновіть свій проект
Йогеш Раті

Використовуйте службу Firebase та Play 9.0, я використовую, тоді працюю досконало, щоб ви могли ще раз перевірити версію 9.0
Yogesh Rathi

Я багато разів робив Відновлення. Замість вирішення проблеми він отримав більше NullPointerException: null.
sweetzyl pili

Чи інтегрували ви бібліотеку підтримки мультидексів
Йогеш Раті

так, я зробив це таким чином. defaultConfig {... multiDexEnabled true} buildTypes {release {minifyEnabled true proguardFiles getDefaultProguardFile ('proguard-android.txt'), 'proguard-rules.pro'}} Це правильно? А також я вже перевіряю версію 9.0 служби гри, і firebase все ще має ту ж помилку.
sweetzyl pili


0

Я отримував NPE через версію jdk, зниження з 11 до 8 вирішило цю проблему

Щоб видалити 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)

0

Для мене він працював , щоб видалити Gradle кеша на рівні каталогу користувача: /Users/<username>/.gradle/cache. --infoВаріант показав невідповідність там.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.