java.lang.NullPointerException (no error message)

前端 未结 11 2262
北恋
北恋 2020-11-28 06:10

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 proje

11条回答
  •  广开言路
    2020-11-28 07:06

    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. where path 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!

提交回复
热议问题