java.lang.NullPointerException (no error message)
AndroidGradlebuild.gradleAndroid Problem Overview
I know that this question of mine has been asked many times and I did follow most of the answers but none of those helped me. So this is my problem, whenever I sync my project it always fails. Here is how the gradle console look like:
> Executing tasks: [:app:generateDebugSources, > :app:generateDebugAndroidTestSources, :app:mockableAndroidJar, > :app:prepareDebugUnitTestDependencies] > > Configuration on demand is an incubating feature. Incremental java > compilation is an incubating feature. :app:preBuild UP-TO-DATE > :app:preDebugBuild UP-TO-DATE :app:checkDebugManifest > :app:preReleaseBuild UP-TO-DATE > :app:prepareComAndroidSupportAnimatedVectorDrawable2420Library > UP-TO-DATE :app:prepareComAndroidSupportAppcompatV72420Library > UP-TO-DATE :app:prepareComAndroidSupportDesign2420Library UP-TO-DATE > :app:prepareComAndroidSupportMediarouterV72300Library UP-TO-DATE > :app:prepareComAndroidSupportRecyclerviewV72420Library UP-TO-DATE > :app:prepareComAndroidSupportSupportCompat2420Library UP-TO-DATE > :app:prepareComAndroidSupportSupportCoreUi2420Library UP-TO-DATE > :app:prepareComAndroidSupportSupportCoreUtils2420Library UP-TO-DATE > :app:prepareComAndroidSupportSupportFragment2420Library UP-TO-DATE > :app:prepareComAndroidSupportSupportMediaCompat2420Library UP-TO-DATE > :app:prepareComAndroidSupportSupportV42420Library UP-TO-DATE > :app:prepareComAndroidSupportSupportVectorDrawable2420Library > UP-TO-DATE :app:prepareComGoogleAndroidGmsPlayServices940Library > UP-TO-DATE :app:prepareComGoogleAndroidGmsPlayServicesAds940Library > UP-TO-DATE > :app:prepareComGoogleAndroidGmsPlayServicesAdsLite940Library > UP-TO-DATE > :app:prepareComGoogleAndroidGmsPlayServicesAnalytics940Library > UP-TO-DATE > :app:prepareComGoogleAndroidGmsPlayServicesAnalyticsImpl940Library > UP-TO-DATE > :app:prepareComGoogleAndroidGmsPlayServicesAppindexing940Library > UP-TO-DATE > :app:prepareComGoogleAndroidGmsPlayServicesAppinvite940Library > UP-TO-DATE :app:prepareComGoogleAndroidGmsPlayServicesAuth940Library > UP-TO-DATE > :app:prepareComGoogleAndroidGmsPlayServicesAuthBase940Library > UP-TO-DATE :app:prepareComGoogleAndroidGmsPlayServicesBase940Library > UP-TO-DATE > :app:prepareComGoogleAndroidGmsPlayServicesBasement940Library > UP-TO-DATE :app:prepareComGoogleAndroidGmsPlayServicesCast940Library > UP-TO-DATE > :app:prepareComGoogleAndroidGmsPlayServicesCastFramework940Library > UP-TO-DATE > :app:prepareComGoogleAndroidGmsPlayServicesClearcut940Library > UP-TO-DATE > :app:prepareComGoogleAndroidGmsPlayServicesContextmanager940Library > UP-TO-DATE :app:prepareComGoogleAndroidGmsPlayServicesDrive940Library > UP-TO-DATE > :app:prepareComGoogleAndroidGmsPlayServicesFitness940Library > UP-TO-DATE :app:prepareComGoogleAndroidGmsPlayServicesGames940Library > UP-TO-DATE :app:prepareComGoogleAndroidGmsPlayServicesGass940Library > UP-TO-DATE :app:prepareComGoogleAndroidGmsPlayServicesGcm940Library > UP-TO-DATE > :app:prepareComGoogleAndroidGmsPlayServicesIdentity940Library FAILURE: > Build failed with an exception. > > * What went wrong: java.lang.NullPointerException (no error message) > > * 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: 7.518 secs
AND these are my dependencies
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'
How to resolve the issue?
Android Solutions
Solution 1 - Android
I've deleted .gradle folder from the project and was able to rebuild it again.
N.B: Make a backup, just in case.
Solution 2 - Android
This Problem created when the suddenly System restarted, then gradle file corrupted. and that corrupted file cached, so we need to Delete this file from your project
your_project_path/.gradle/2.14.1/taskArtifacts
It will be re-generate again.
Then restart the Android studio and re-compile the project.
source : https://code.google.com/p/android/issues/detail?id=220741#c13
It is worked for me.
Solution 3 - Android
If you are still having this problem, even after deleting .gradle folder under your project's path, as suggested above, kill all Java processes running on the task manager and try to update your Android Studio.
I was in the same situation but now it works fine.
Hope it helps!
Solution 4 - Android
I have same problem when the java version is 1.9
jenv use java 1.8
all problem is solved.
Solution 5 - Android
The issue is likely the gradle.properties file. If you type ./gradlew tasks
in the terminal, you see the error you mentioned but ./gradlew tasks --info
shows more details about the error. For me, in all my projects, it was the same error message:
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]
Solution: (no need to edit .bash_profile
or downgrade gradle or delete gradle.folder).
- Add
org.gradle.java.home=path
in gradle.properties. wherepath
is the Android Studio java path (actual java home stated in the--info
log). For me, it's/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home
, for you, the path could be different.
This is what my gradle.properties file looks like after the change:
org.gradle.java.home=/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home
org.gradle.daemon=true
Notes: The space between "Android Studio" in the path is intentional, it doesn't work if an underscore is used. Escape characters \
are allowed but not needed: ...Android\ Studio.app/Contents/jre....
I have also enabled the daemon build runner but not needed for gradlew to run its tasks. If your null pointer error is different, use --info
to point you in the right direction.
I'm running:
Android Studio 3.1.4 (on a Mac 10.13)
java version "10"
classpath 'com.android.tools.build:gradle:3.1.4' (dependency)
Hope it helps someone!
Solution 6 - Android
The accepted solution is kinda risk and might not be the solution to most people.
The correct answer is that unfortunately there is not a single answer.
You must look the logs for your case ( Help > Show Logs
, or Show Logs in Explorer
and then open the idea.log
file in your text editor)
There you will see the entire stack trace with the actual error where it happened.
From there, it would make sense to clear idea cache as the currently accepted solution mentions, or do something else (in my case it was a mismatched gradle/cmake/ndk versions and not deleting my .gradle cache folder would have helped)
Solution 7 - Android
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'
Not sure this is the culprit, but you got pretty mess with used versions here. Try to use recent versions or at least the same for all components related.
This tool may help you stay in sync in future: https://github.com/ben-manes/gradle-versions-plugin
Solution 8 - Android
I had a similar problem when importing firebase into my project. First of all make sure that you followed the tutorial steps correctly and have imported the provided .json file into the right directory.
Also, since firebase v9.0 it has been implemented into the google play services, so for firebase to work properly, make sure that the Google play services are up to date on the device that you're testing,
I've also found this answer to be helpful while solving my issue https://stackoverflow.com/a/37310513/6728099
Solution 9 - Android
Remove below lines from dependency's, because already you compile complete play services dependency
compile 'com.google.android.gms:play-services-location:9.4.0'
compile 'com.google.android.gms:play-services-appindexing:9.4.0'
Solution 10 - Android
Check your app/build.gradle
.
My problem was a '
in a dependency.
Solution 11 - Android
I was getting a NPE due to the jdk version, downgrading from 11 to 8 solved this issue
To remove 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)
Solution 12 - Android
For me it worked to delete the Gradle cache on user directory level:
/Users/<username>/.gradle/cache
. The --info
option showed an inconsistency there.
Solution 13 - Android
For me, the issue was the open source project was using older version of gradle 3.4.0.
Edit build.gradle and change com.android.tools.build:gradle:x.x.x
to the latest version in the dependency. In my case, com.android.tools.build:gradle:4.1.2
Open the project in Android Studio again, you will now see another error message about minimum Gradle version like in the screenshot below
Click on the blue text Fix Gradle wrapper and re-import project
. You should be good to go
Solution 14 - Android
Also check your dependencies in the build.gradle file
In my own case, I removed the Glide library (implementation "com.github.bumptech.glide:glide:4.9.0") without deleting the corresponding annotation library (annotationProcessor "com.github.bumptech.glide:compiler:4.11.0")
After removing these two libraries, the build error was fixed.
Solution 15 - Android
check local.properties
file. See if the *.dir value is pointing to correct folder.
In my case ndk.dir
was poiting to some other folder. When I fixed that the issue was gone.
ndk.dir=E\:\\Android\\local\\Android\\Sdk\\ndk-bundle
sdk.dir=E\:\\Android\\local\\Android\\Sdk
Solution 16 - Android
I also had the same error. I solved it by: Invalidating Caches and Restart Android Studio