0
  1. 导入android.app.Activity;导入android.os.Bundle;导入android.util.Log;导入 android.widget.TextView;导入静态 com.example.gcm_id.CommonUtilities.SENDER_ID;

               import com.google.android.gcm.GCMRegistrar;
    
               public class MainActivity extends Activity {
                private String TAG = "** pushAndroidActivity **";
                private TextView mDisplay;
                //static final String SENDER_ID ="628298704769";
                @Override
                public void onCreate(Bundle savedInstanceState) {
    
                    super.onCreate(savedInstanceState);
                    checkNotNull(SENDER_ID,"SENDER_ID");
                    //Log.v(TAG, "GCMRegistrar");
                    GCMRegistrar.checkDevice(this);
                    GCMRegistrar.checkManifest(this);
    
                    setContentView(R.layout.activity_main);
    
                    mDisplay = (TextView) findViewById(R.id.display);
    
    
                    final String regId = GCMRegistrar.getRegistrationId(this);
                    Log.i(TAG, "registration id =====  "+regId);
                    if (regId.equals("")) 
                    {
                        GCMRegistrar.register(this, SENDER_ID);
                    } 
                    else 
                    {
                        Log.v(TAG, "Already registered");
                    }
                    mDisplay.setText("ffffff"+regId);
                }
    
    
    
                //          final String regId = GCMRegistrar.getRegistrationId(this);
                //          Log.i(TAG, "registration id =====  "+regId);
                //           
                //          if (regId.equals("")) {
                //          GCMRegistrar.register(this, SENDER_ID);
                //          } else {
                //          Log.v(TAG, "Already registered");
                //          }
                //           
                //          mDisplay.setText("ffffff "+regId);
                //      
                //      }
    
                private void checkNotNull(Object reference, String name) {
                    if (reference == null) {
                        throw new NullPointerException(getString(R.string.hello_world, name, name));
    
                    }
                }
    
                @Override
                protected void onPause() {
                    super.onPause();
                    GCMRegistrar.unregister(this);
                }
    
    
    
    
    
    
               }
    
    
    
    
    
    
    
    
    
    
    
       GCMBaseintentservice:-
    
           package com.example.gcm_id;
    
           import android.content.Context;
           import android.content.Intent;
           import android.util.Log;
           import static com.example.gcm_id.CommonUtilities.SENDER_ID;
           import com.google.android.gcm.GCMBaseIntentService;
    
           public class GCMIntentService extends GCMBaseIntentService {
            //static final String SENDER_ID = "628298704769";
            public GCMIntentService() {
                super(SENDER_ID);
            }
    
            private static final String TAG = "===GCMIntentService===";
    
    
            @Override
            protected void onRegistered(Context arg0, String registrationId) {
                Log.i(TAG, "Device registered: regId = " + registrationId);
            }
    
            @Override
            protected void onUnregistered(Context arg0, String arg1) {
                Log.i(TAG, "unregistered = "+arg1);
            }
    
            @Override
            protected void onMessage(Context arg0, Intent arg1) {
                Log.i(TAG, "new message= ");
            }
    
            @Override
            protected void onError(Context arg0, String errorId) {
                Log.i(TAG, "Received error: " + errorId);
            }
    
            @Override
            protected boolean onRecoverableError(Context context, String errorId) {
                return super.onRecoverableError(context, errorId);
            }
    
           }
    
       String KEY:=
    
       public final class CommonUtilities {
    
    static final String SENDER_ID = "628298704769";    }
    

    错误 LOG_CAT 输出

    10-01 13:11:33.897: D/AndroidRuntime(1473): 关闭 VM 10-01 13:11:33.897: W/dalvikvm(1473): threadid=1: 线程退出未捕获异常 (group=0x4001d800) 10 -01 13:11:33.967: E/AndroidRuntime(1473): 致命异常: main 10-01 13:11:33.967: E/AndroidRuntime(1473): java.lang.RuntimeException: 无法启动活动 ComponentInfo{com.example .gcm_id/com.example.gcm_id.MainActivity}:java.lang.UnsupportedOperationException:设备没有包 com.google.android.gsf 10-01 13:11:33.967:E/AndroidRuntime(1473):在 android.app .ActivityThread.performLaunchActivity(ActivityThread.java:2663) 10-01 13:11:33.967: E/AndroidRuntime(1473): 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 10-01 13:11:33.967 : E/AndroidRuntime(1473): 在 android.app.ActivityThread.access$2300(ActivityThread.java:125) 10-01 13:11:33.967: E/AndroidRuntime(1473): 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 10-01 13:11:33.967: E/AndroidRuntime(1473) : 在 android.os.Handler.dispatchMessage(Handler.java:99) 10-01 13:11:33.967: E/AndroidRuntime(1473): 在 android.os.Looper.loop(Looper.java:123) 10-01 13:11:33.967: E/AndroidRuntime(1473): 在 android.app.ActivityThread.main(ActivityThread.java:4627) 10-01 13:11:33.967: E/AndroidRuntime(1473): 在 java.lang.reflect .Method.invokeNative(Native Method) 10-01 13:11:33.967: E/AndroidRuntime(1473): at java.lang.reflect.Method.invoke(Method.java:521) 10-01 13:11:33.967: E/AndroidRuntime(1473): 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 10-01 13:11:33.967: E/AndroidRuntime(1473): 在 com.android.internal .os.ZygoteInit.main(ZygoteInit.java:626) 10-01 13:11:33.967: E/AndroidRuntime(1473): at dalvik.system.NativeStart.main(Native Method) 10-01 13:11:33.967: E/AndroidRuntime(1473): 由: java.lang.UnsupportedOperationException: 设备没有包 com.google.android.gsf 10-01 13:11:33.967: E/AndroidRuntime(1473): at com.google.android.gcm.GCMRegistrar.checkDevice(GCMRegistrar. java:98) 10-01 13:11:33.967: E/AndroidRuntime(1473): 在 com.example.gcm_id.MainActivity.onCreate(MainActivity.java:21) 10-01 13:11:33.967: E/AndroidRuntime( 1473): 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 10-01 13:11:33.967: E/AndroidRuntime(1473): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 10 -01 13:11:33.967: E/AndroidRuntime(1473): ... 11 更多在 dalvik.system.NativeStart.main(Native Method) 10-01 13:11:33.967: E/AndroidRuntime(1473): Caused by: java.lang.UnsupportedOperationException: Device does not have package com.google.android.gsf 10 -01 13:11:33.967: E/AndroidRuntime(1473): 在 com.google.android.gcm.GCMRegistrar.checkDevice(GCMRegistrar.java:98) 10-01 13:11:33.967: E/AndroidRuntime(1473):在 com.example.gcm_id.MainActivity.onCreate(MainActivity.java:21) 10-01 13:11:33.967: E/AndroidRuntime(1473): 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 10- 01 13:11:33.967: E/AndroidRuntime(1473): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 10-01 13:11:33.967: E/AndroidRuntime(1473): ... 还有 11 个在 dalvik.system.NativeStart.main(Native Method) 10-01 13:11:33.967: E/AndroidRuntime(1473): Caused by: java.lang.UnsupportedOperationException: Device does not have package com.google.android.gsf 10 -01 13:11:33.967: E/AndroidRuntime(1473): 在 com.google.android.gcm.GCMRegistrar.checkDevice(GCMRegistrar.java:98) 10-01 13:11:33.967: E/AndroidRuntime(1473):在 com.example.gcm_id.MainActivity.onCreate(MainActivity.java:21) 10-01 13:11:33.967: E/AndroidRuntime(1473): 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 10- 01 13:11:33.967: E/AndroidRuntime(1473): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 10-01 13:11:33.967: E/AndroidRuntime(1473): ... 还有 11 个UnsupportedOperationException: 设备没有包 com.google.android.gsf 10-01 13:11:33.967: E/AndroidRuntime(1473): at com.google.android.gcm.GCMRegistrar.checkDevice(GCMRegistrar.java:98) 10 -01 13:11:33.967: E/AndroidRuntime(1473): 在 com.example.gcm_id.MainActivity.onCreate(MainActivity.java:21) 10-01 13:11:33.967: E/AndroidRuntime(1473): 在 android .app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 10-01 13:11:33.967: E/AndroidRuntime(1473): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 10-01 13:11 :33.967: E/AndroidRuntime(1473): ... 11 更多UnsupportedOperationException: 设备没有包 com.google.android.gsf 10-01 13:11:33.967: E/AndroidRuntime(1473): at com.google.android.gcm.GCMRegistrar.checkDevice(GCMRegistrar.java:98) 10 -01 13:11:33.967: E/AndroidRuntime(1473): 在 com.example.gcm_id.MainActivity.onCreate(MainActivity.java:21) 10-01 13:11:33.967: E/AndroidRuntime(1473): 在 android .app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 10-01 13:11:33.967: E/AndroidRuntime(1473): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 10-01 13:11 :33.967: E/AndroidRuntime(1473): ... 11 更多E/AndroidRuntime(1473): 在 com.example.gcm_id.MainActivity.onCreate(MainActivity.java:21) 10-01 13:11:33.967: E/AndroidRuntime(1473): 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation .java:1047) 10-01 13:11:33.967: E/AndroidRuntime(1473): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 10-01 13:11:33.967: E/AndroidRuntime(1473) ): ... 11 更多E/AndroidRuntime(1473): 在 com.example.gcm_id.MainActivity.onCreate(MainActivity.java:21) 10-01 13:11:33.967: E/AndroidRuntime(1473): 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation .java:1047) 10-01 13:11:33.967: E/AndroidRuntime(1473): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 10-01 13:11:33.967: E/AndroidRuntime(1473) ): ... 11 更多

4

2 回答 2

0

删除了答案,因为它都是针对我的应用程序的,自从我使用它以来已经很久了。我将等待 LogCat 输出

于 2013-09-27T11:48:30.270 回答
0

您为项目设置了错误的目标,或者您的设备不支持 Google API。在前一种情况下,将您的构建跟踪更改为其中一个 Google API (>= GOOGLE API 10)。它不起作用,因为您的项目找不到 GCM 工作所需的 Google API。右键单击您的项目,转到属性 > Android 并更改构建目标。如果您没有安装 Google APIs,则必须先通过 SDK Manager 安装它。

如果您的设备不支持 google api,例如,您可能在目标设置为 Android Api 而不是 Google Api 的模拟器上对其进行测试;创建一个新的模拟器,目标设置为 Google API (>=10)

在此处输入图像描述

在此处输入图像描述

于 2013-10-01T08:26:47.973 回答