我有一些處理remoteMessage的NullPointer異常的問題。Firebase remoteMessage getData正確NullPointer處理
我試圖做簡單的檢查:
Map<String, String> data = remoteMessage.getData();
if(data != null) {
Log.d(TAG, remoteMessage.getData().get("lat"));
Log.d(TAG, remoteMessage.getData().get("lng"));
}
我也更努力:
if(remoteMessage.getData().get("lat") != null) {
Log.d(TAG, remoteMessage.getData().get("lat"));
}
但它總是空指針崩潰:
05-29 10:22:33.112 21028-24256/com.coderspeak.smog_app E/AndroidRuntime: FATAL EXCEPTION: pool-12-thread-1
Process: com.coderspeak.smog_app, PID: 21028
java.lang.NullPointerException: println needs a message
at android.util.Log.println_native(Native Method)
at android.util.Log.d(Log.java:139)
at com.coderspeak.smog_app.services.fcm.AppFirebaseMessagingService.onMessageReceived(AppFirebaseMessagingService.java:50)
at com.google.firebase.messaging.FirebaseMessagingService.zzl(Unknown Source)
at com.google.firebase.messaging.FirebaseMessagingService.zzJ(Unknown Source)
at com.google.firebase.messaging.FirebaseMessagingService.handleIntent(Unknown Source)
at com.google.firebase.iid.zzb$1.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
我該怎麼辦這適當的檢查?
Log.d(TAG,remoteMessage.getData()。get(「lat」)+「」); –
你可以嘗試打印整個'data'嗎?像這樣,'Log.d(TAG,「Message data payload:」+ remoteMessage.getData());' –