java - GCM android Error receiving broadcast Intent { act=DISPLAY.MESSAGE flg=0x10(有附加功能)

标签 java android

我在启动应用程序并在 Gcm 中注册设备时遇到问题

知道如何解决吗?

其余的工作正常,我收到了通知并且正确。

private final BroadcastReceiver mHandleMessageReceiver = new BroadcastReceiver() {

        @Override
        public void onReceive(Context context, Intent intent) {

            Log.v("MESSAGE", intent.getExtras().getString("message") );
            String newMessage = intent.getExtras().getString("message");
            // Waking up mobile if it is sleeping
            aController.acquireWakeLock(getApplicationContext());       
            Toast.makeText(getApplicationContext(), "Got Message: " + newMessage, Toast.LENGTH_LONG).show();
            // Releasing wake lock
            aController.releaseWakeLock();
        }
    };

错误

01-10 20:11:09.945: W/dalvikvm(20161): threadid=1: thread exiting with uncaught exception (group=0x40c5a1f8)
01-10 20:11:09.945: E/AndroidRuntime(20161): FATAL EXCEPTION: main
01-10 20:11:09.945: E/AndroidRuntime(20161): java.lang.RuntimeException: Error receiving broadcast Intent { act=example.gcm.testing.DISPLAY_MESSAGE flg=0x10 (has extras) } in example.gcm.testing.MainActivity$1@41a0a2d8
01-10 20:11:09.945: E/AndroidRuntime(20161):    at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:737)
01-10 20:11:09.945: E/AndroidRuntime(20161):    at android.os.Handler.handleCallback(Handler.java:605)
01-10 20:11:09.945: E/AndroidRuntime(20161):    at android.os.Handler.dispatchMessage(Handler.java:92)
01-10 20:11:09.945: E/AndroidRuntime(20161):    at android.os.Looper.loop(Looper.java:137)
01-10 20:11:09.945: E/AndroidRuntime(20161):    at android.app.ActivityThread.main(ActivityThread.java:4517)
01-10 20:11:09.945: E/AndroidRuntime(20161):    at java.lang.reflect.Method.invokeNative(Native Method)
01-10 20:11:09.945: E/AndroidRuntime(20161):    at java.lang.reflect.Method.invoke(Method.java:511)
01-10 20:11:09.945: E/AndroidRuntime(20161):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:993)
01-10 20:11:09.945: E/AndroidRuntime(20161):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:760)
01-10 20:11:09.945: E/AndroidRuntime(20161):    at dalvik.system.NativeStart.main(Native Method)
01-10 20:11:09.945: E/AndroidRuntime(20161): Caused by: java.lang.NullPointerException
01-10 20:11:09.945: E/AndroidRuntime(20161):    at example.gcm.testing.MainActivity$1.onReceive(MainActivity.java:146)
01-10 20:11:09.945: E/AndroidRuntime(20161):    at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:728)

最佳答案

您的 extra 代码返回 null,

String newMessage = intent.getExtras().getString("message");

使用 try catch,并确保你有额外的东西可以从那里接收!

关于java - GCM android Error receiving broadcast Intent { act=DISPLAY.MESSAGE flg=0x10(有附加功能),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21052908/

相关文章:

java - XML 非法属性值

java - 在 JLabel 上画线

java - Talend Open Studio 退出

android - 如何在 Android 中显示一个多列的 ListView?

java - 如果我的应用程序在 Android 上最小化,如何启动并显示 Activity ?

java - Realm 中的 allObjects() 方法是否已弃用?

java - 扩展 Junit ParentRunner 类以过滤测试方法

android - 设置安卓系统音量

android - AltBeacon 搜索 GATT 服务

javascript - React Native 可以在 sleep 模式下工作吗?