Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/180.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android GCM注册ID错误_Android_Registration_Google Cloud Messaging - Fatal编程技术网

Android GCM注册ID错误

Android GCM注册ID错误,android,registration,google-cloud-messaging,Android,Registration,Google Cloud Messaging,我有一台已经在GCM注册的设备。我尝试过搜索,但没有找到任何类似的问题。大多数用户似乎在获取getRegistrationId以返回非空字符串时遇到问题。你知道这会导致错误的原因吗 public class UploadOption extends Activity{ Intent extras = getIntent(); String optionid = extras.getStringExtra("KEY_OPTION"); String duration = e

我有一台已经在GCM注册的设备。我尝试过搜索,但没有找到任何类似的问题。大多数用户似乎在获取getRegistrationId以返回非空字符串时遇到问题。你知道这会导致错误的原因吗

public class UploadOption extends Activity{
    Intent extras = getIntent();
    String optionid = extras.getStringExtra("KEY_OPTION");
    String duration = extras.getStringExtra("KEY_DURATION");
    String reward = extras.getStringExtra("KEY_REWARD");


    @Override
    public void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.debug_layout);

        final String regId = GCMRegistrar.getRegistrationId(this);
        TextView tvDebug = (TextView) findViewById(R.id.tvDebug);
        tvDebug.setText(regId);

        // Stores option id, php grabs option.
        //new Upload().execute();
    }
}
错误日志如下所示:

01-18 18:02:51.756: D/AndroidRuntime(4478): Shutting down VM
01-18 18:02:51.756: W/dalvikvm(4478): threadid=1: thread exiting with uncaught exception (group=0x4001e578)
01-18 18:02:51.803: E/AndroidRuntime(4478): FATAL EXCEPTION: main
01-18 18:02:51.803: E/AndroidRuntime(4478): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.matt.drapp/com.matt.drapp.UploadOption}: java.lang.NullPointerException
01-18 18:02:51.803: E/AndroidRuntime(4478):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1573)
01-18 18:02:51.803: E/AndroidRuntime(4478):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
01-18 18:02:51.803: E/AndroidRuntime(4478):     at android.app.ActivityThread.access$1500(ActivityThread.java:117)
01-18 18:02:51.803: E/AndroidRuntime(4478):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
01-18 18:02:51.803: E/AndroidRuntime(4478):     at android.os.Handler.dispatchMessage(Handler.java:99)
01-18 18:02:51.803: E/AndroidRuntime(4478):     at android.os.Looper.loop(Looper.java:130)
01-18 18:02:51.803: E/AndroidRuntime(4478):     at android.app.ActivityThread.main(ActivityThread.java:3687)
01-18 18:02:51.803: E/AndroidRuntime(4478):     at java.lang.reflect.Method.invokeNative(Native Method)
01-18 18:02:51.803: E/AndroidRuntime(4478):     at java.lang.reflect.Method.invoke(Method.java:507)
01-18 18:02:51.803: E/AndroidRuntime(4478):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
01-18 18:02:51.803: E/AndroidRuntime(4478):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
01-18 18:02:51.803: E/AndroidRuntime(4478):     at dalvik.system.NativeStart.main(Native Method)
01-18 18:02:51.803: E/AndroidRuntime(4478): Caused by: java.lang.NullPointerException
01-18 18:02:51.803: E/AndroidRuntime(4478):     at com.matt.drapp.UploadOption.<init>(UploadOption.java:32)
01-18 18:02:51.803: E/AndroidRuntime(4478):     at java.lang.Class.newInstanceImpl(Native Method)
01-18 18:02:51.803: E/AndroidRuntime(4478):     at java.lang.Class.newInstance(Class.java:1409)
01-18 18:02:51.803: E/AndroidRuntime(4478):     at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
01-18 18:02:51.803: E/AndroidRuntime(4478):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1565)
01-18 18:02:51.803: E/AndroidRuntime(4478):     ... 11 more
01-18 18:02:51.756:D/AndroidRuntime(4478):关闭虚拟机
01-18 18:02:51.756:W/dalvikvm(4478):threadid=1:线程以未捕获异常退出(组=0x4001e578)
01-18 18:02:51.803:E/AndroidRuntime(4478):致命异常:主
01-18 18:02:51.803:E/AndroidRuntime(4478):java.lang.RuntimeException:无法实例化活动组件信息{com.matt.drapp/com.matt.drapp.UploadOption}:java.lang.NullPointerException
01-18 18:02:51.803:E/AndroidRuntime(4478):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1573)
01-18 18:02:51.803:E/AndroidRuntime(4478):位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
01-18 18:02:51.803:E/AndroidRuntime(4478):在android.app.ActivityThread.access$1500(ActivityThread.java:117)
01-18 18:02:51.803:E/AndroidRuntime(4478):在android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
01-18 18:02:51.803:E/AndroidRuntime(4478):位于android.os.Handler.dispatchMessage(Handler.java:99)
01-18 18:02:51.803:E/AndroidRuntime(4478):在android.os.Looper.loop(Looper.java:130)上
01-18 18:02:51.803:E/AndroidRuntime(4478):位于android.app.ActivityThread.main(ActivityThread.java:3687)
01-18 18:02:51.803:E/AndroidRuntime(4478):位于java.lang.reflect.Method.Invokenactive(本机方法)
01-18 18:02:51.803:E/AndroidRuntime(4478):位于java.lang.reflect.Method.invoke(Method.java:507)
01-18 18:02:51.803:E/AndroidRuntime(4478):在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
01-18 18:02:51.803:E/AndroidRuntime(4478):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
01-18 18:02:51.803:E/AndroidRuntime(4478):在dalvik.system.NativeStart.main(本机方法)
01-18 18:02:51.803:E/AndroidRuntime(4478):由以下原因引起:java.lang.NullPointerException
01-18 18:02:51.803:E/AndroidRuntime(4478):在com.matt.drapp.UploadOption。(UploadOption.java:32)
01-18 18:02:51.803:E/AndroidRuntime(4478):位于java.lang.Class.newInstanceImpl(本机方法)
01-18 18:02:51.803:E/AndroidRuntime(4478):位于java.lang.Class.newInstance(Class.java:1409)
01-18 18:02:51.803:E/AndroidRuntime(4478):在android.app.Instrumentation.newActivity(Instrumentation.java:1021)上
01-18 18:02:51.803:E/AndroidRuntime(4478):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1565)
01-18 18:02:51.803:E/AndroidRuntime(4478):。。。还有11个

示例中哪一行导致NullPointerException。因为如果只是找不到textView,那么可能会导致整个应用程序崩溃,因为您尝试设置文本,但它是空对象


因此,首先,注释掉textview的内容,看看它是否仍然有效。如果不是这样,您能告诉我们您班上的第32行是哪一行吗?因为它显然与这里的不同。

问题是由于
意图造成的。记住,只有在
onCreate()
之后才初始化活动,并且您正试图在活动初始化之前获取意图值

将下面的代码放入
onCreate()中

Intent extras = getIntent();
String optionid = extras.getStringExtra("KEY_OPTION");
String duration = extras.getStringExtra("KEY_DURATION");
String reward = extras.getStringExtra("KEY_REWARD");

它应该可以工作。

问题是GetRegistrationID返回null。这是因为您在实际向GCM服务器注册并接收对GCMinentService的onRegistered回调之前,正在activity类中调用它。如果getRegistrationID返回null,则应该启动一个异步任务来调用gcmregistar.register


按照说明操作:

谢谢,就这样!有时候,这只需要另一双眼睛。