java.lang.NullPointerException (không có thông báo lỗi)


81

Tôi biết rằng câu hỏi này của tôi đã được hỏi nhiều lần và tôi đã làm theo hầu hết các câu trả lời nhưng không ai trong số đó giúp tôi. Vì vậy, đây là vấn đề của tôi, bất cứ khi nào tôi đồng bộ hóa dự án của mình, nó luôn không thành công. Đây là giao diện của bảng điều khiển gradle:

Thực thi các tác vụ: [: app: createDebugSources,: app: generateDebugAndroidTestSources,: app: mockableAndroidJar,: app: standardDebugUnitTestDependencies]

Cấu hình theo yêu cầu là một tính năng ươm tạo. Biên dịch java tăng dần là một tính năng ươm tạo. : app: preBuild UP-TO-DATE: app: preDebugBuild UP-TO-DATE: app: checkDebugManifest: app: preReleaseBuild UP-TO-DATE: app: standardComAndroidSupportAnimatedVectorDrawable2420Library UP-TO-DATE: app: chuẩn bị ứng dụng: prepareComAndroidSupportDesign2420Library UP-TO-NGÀY: ứng dụng: prepareComAndroidSupportMediarouterV72300Library UP-TO-NGÀY: ứng dụng: prepareComAndroidSupportRecyclerviewV72420Library UP-TO-NGÀY: ứng dụng: prepareComAndroidSupportSupportCompat2420Library UP-TO-NGÀY: ứng dụng: prepareComAndroidSupportSupportCoreUi2420Library UP-TO-NGÀY: ứng dụng: prepareComAndroidSupportSupportCoreUtils2420Library Up- ĐẾN NGÀY: app: chuẩn bịComAndroidSupportSupportFragment2420Library UP-TO-DATE: app:

  • Đã xảy ra sự cố: java.lang.NullPointerException (không có thông báo lỗi)

  • Thử: Chạy với tùy chọn --stacktrace để lấy dấu vết ngăn xếp. Chạy với tùy chọn --info hoặc --debug để nhận được nhiều đầu ra nhật ký hơn.

THIẾT LẬP THẤT BẠI

Tổng thời gian: 7,518 giây

VÀ đây là những phụ thuộc của tôi

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'

Làm thế nào để giải quyết vấn đề?


3
Tôi đã gặp vấn đề tương tự ngay bây giờ. Build -> Clean Project, sau đó chạy lại đã làm việc cho tôi.
w3bshark

đôi khi Android Studio không xác định được lỗi như thế nào. 1.error sintaxis, không tìm thấy 2.resources, 3.changes trong mã .. và những người khác .. trường hợp của tôi đã thay đổi không tìm thấy ..
marlonpya

@marlonpya hãy xem ở đây , vấn đề rất có thể xảy ra với gradle.properties.
chornge 23/09/18

Mỗi khi tôi cập nhật Android Studio, những điều kỳ lạ như thế này sẽ xảy ra. Bản dựng sạch của w3bshark đã phù hợp với tôi.
Dale

Câu trả lời:


189

Tôi đã xóa thư mục .gradle khỏi dự án và có thể tạo lại nó.

NB: Hãy dự phòng, đề phòng.


Ý bạn là tập tin gradle nào?
sweetzyl pili

6
Trong thư mục gốc của dự án của bạn, có thư mục ".gradle". Xóa nó và khởi động lại Android Studio, nó sẽ được tạo lại trong quá trình xây dựng.
rastik 22/09/2016

Có phải các bạn đã phải đối mặt với một cái gì đó tương tự như thế này? ( stackoverflow.com/questions/39749380/… ). Điều này chắc chắn không hiệu quả với tôi: / @rastik
Siddhant Rimal,

Tôi không thể tìm thấy bất kỳ thư mục .gradle nào trong thư mục dự án của mình, chỉ có thư mục gradle chứ không có .gradle, tôi đang sử dụng MAC, any1 giải quyết vấn đề này?
aznelite89 30/12/16

5
xóa .gradle không hoạt động bất kỳ giải pháp nào khác? Tôi thấy thư mục này compileDebugJavaWithJavac trong thư mục app-tmp và nó có thư mục trống mang tên emptySourcePathRef ... dọn dẹp dự án xóa thư mục này vì vậy tôi giả định này là nó nhưng vẫn báo lỗi xuất hiện
Aalap Patel

28

Sự cố này được tạo ra khi Hệ thống đột ngột khởi động lại, sau đó tệp gradle bị hỏng. và tệp bị hỏng đó được lưu vào bộ nhớ đệm, vì vậy chúng tôi cần Xóa tệp này khỏi dự án của bạn

your_project_path/.gradle/2.14.1/taskArtifacts

Nó sẽ được tạo lại một lần nữa.

Sau đó khởi động lại Android studio và biên dịch lại dự án.

nguồn: https://code.google.com/p/android/issues/detail?id=220741#c13

Nó được làm việc cho tôi.


Chỉ cần một lưu ý, hãy đảm bảo bạn đóng tất cả cửa sổ dự án để khởi động lại Android Studio, không chỉ cửa sổ dự án.
Trái cây

nó hoạt động đối với tôi (pb với ion (Ionic CLI): 3.19.0) Không thực thi được tác vụ ': compileArmv7DebugJavaWithJavac'. > java.lang.NullPointerException (không có thông báo lỗi)
m50

3

Nếu bạn vẫn gặp sự cố này, ngay cả sau khi xóa thư mục .gradle trong đường dẫn dự án của bạn, như đã đề xuất ở trên , hãy giết tất cả các quy trình Java đang chạy trên trình quản lý tác vụ và cố gắng cập nhật Android Studio của bạn .

Tôi đã ở trong tình huống tương tự nhưng bây giờ nó hoạt động tốt.

Hy vọng nó giúp!


2

Tôi gặp sự cố tương tự khi phiên bản java là 1.9

jenv use java 1.8 

tất cả các vấn đề được giải quyết.


1

Vấn đề có thể là do tệp gradle.properties. Nếu bạn nhập ./gradlew tasksvào thiết bị đầu cuối, bạn sẽ thấy lỗi mà bạn đã đề cập nhưng ./gradlew tasks --infohiển thị thêm chi tiết về lỗi. Đối với tôi, trong tất cả các dự án của tôi, nó đều có cùng một thông báo lỗi:

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]

Giải pháp: (không cần chỉnh sửa .bash_profilehoặc hạ cấp gradle hoặc xóa gradle.folder ).

  • Thêm org.gradle.java.home=pathvào gradle.properties. đâu pathlà đường dẫn java Android Studio (trang chủ java thực tế được nêu trong --infonhật ký). Đối với tôi, đó là/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home đối với bạn, con đường có thể khác.

Đây là tệp gradle.properties của tôi trông như thế nào sau khi thay đổi:

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

Lưu ý : Khoảng trống giữa " Android Studio " trong đường dẫn là cố ý, nó không hoạt động nếu sử dụng dấu gạch dưới. Các ký tự thoát \được phép nhưng không cần thiết:...Android\ Studio.app/Contents/jre....

Tôi cũng đã bật trình chạy xây dựng daemon nhưng không cần thiết để gradlew chạy các tác vụ của nó. Nếu lỗi con trỏ null của bạn khác, hãy sử dụng --infođể chỉ bạn đi đúng hướng.

Tôi đang chạy:

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

Hy vọng nó sẽ giúp một ai đó!


khi tôi chạy lệnh ./gradlew các nhiệm vụ thì tôi không gặp bất kỳ vấn đề nào nhưng về thời gian xây dựng, tôi nhận được vấn đề được đề cập.
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'

Không chắc đây là thủ phạm, nhưng bạn khá lộn xộn với các phiên bản đã sử dụng ở đây. Cố gắng sử dụng các phiên bản gần đây hoặc ít nhất là giống nhau cho tất cả các thành phần liên quan.

Công cụ này có thể giúp bạn luôn đồng bộ hóa trong tương lai: https://github.com/ben-manes/gradle-versions-plugin


0

Tôi đã gặp sự cố tương tự khi nhập firebase vào dự án của mình. Trước hết, hãy đảm bảo rằng bạn đã làm theo đúng các bước hướng dẫn và đã nhập tệp .json được cung cấp vào đúng thư mục.

Ngoài ra, vì firebase v9.0, nó đã được triển khai vào các dịch vụ của google play, vì vậy để firebase hoạt động bình thường, hãy đảm bảo rằng các dịch vụ của Google play được cập nhật trên thiết bị mà bạn đang thử nghiệm,

Tôi cũng thấy câu trả lời này hữu ích khi giải quyết vấn đề của mình https://stackoverflow.com/a/37310513/6728099


thực sự ngay cả trước khi tôi nhập firebase, nó vẫn có lỗi tương tự. Tôi vừa thêm firebase để có thể tiếp tục dự án của mình. Trong thực tế, tôi đã tạo một ứng dụng giả để kiểm tra xem tôi đã làm theo đúng hướng dẫn chưa. Tôi cũng đã cập nhật AS và SDK của mình nhưng nó không giải quyết được vấn đề.
sweetzyl pili

0

Xóa các dòng bên dưới khỏi phần phụ thuộc, vì bạn đã biên dịch phụ thuộc dịch vụ chơi hoàn chỉnh rồi

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

1
Xây dựng lại dự án của bạn
Yogesh Rathi

Sử dụng căn cứ hỏa lực và vui chơi phục vụ 9.0, tôi đang sử dụng sau đó làm việc một cách hoàn hảo để bạn có thể kiểm tra lại với 9.0 phiên bản
Yogesh Rathi

Tôi đã xây dựng lại nhiều lần. Thay vì giải quyết vấn đề, nó có thêm NullPointerException: null.
sweetzyl pili

Các bạn đã tích hợp thư viện hỗ trợ multidex
Yogesh Rathi

vâng, tôi đã làm theo cách này. defaultConfig {... multiDexEnabled true} buildTypes {release {minifyEnabled true proguardFiles getDefaultProguardFile ('proguard-android.txt'), 'proguard-rules.pro'}} Điều này có chính xác không? Và tôi cũng đã kiểm tra phiên bản 9.0 của dịch vụ play và firebase vẫn gặp lỗi tương tự.
sweetzyl pili

0

Kiểm tra của bạn app/build.gradle. Vấn đề của tôi là 'phụ thuộc.


0

Tôi đã nhận được NPE do phiên bản jdk, việc hạ cấp từ 11 xuống 8 đã giải quyết được vấn đề này

Để loại bỏ 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

Đối với tôi nó làm việc để xóa bộ nhớ cache Gradle trên cấp độ thư mục người sử dụng: /Users/<username>/.gradle/cache. Các --infotùy chọn cho thấy một sự mâu thuẫn ở đó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.