import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.widget.TextView; import static com.example.gcm_id.CommonUtilities.SENDER_ID;逆向GCM註冊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 OUTPUT
10-01 13:11:33.897:d/AndroidRuntime(1473):關閉VM 10-01 13:11:33.897:W/dalvikvm(1473): 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.Unsup portedOperationException:設備沒有 package com.google.android.gsf 10-01 13:11:33.967: E/AndroidRuntime(1473):at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663) 10 -01 13:11:33.967:E/AndroidRuntime(1473):at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 10-01 13:11:33.967:E/AndroidRuntime(1473):at Android.app.ActivityThread.access $ 2300(ActivityThread.java:125) 10-01 13:11:33.967:E/AndroidRuntime(1473):at android.app.ActivityThread $ H.handleMessage(ActivityThread.java:2033) 10-01 13:11:33.967:E/AndroidRuntime(1473):at android.os.Handler.dispatchMessage(Handler.java: 99)10-01 13:11:33.967:E/AndroidRuntime(1473):at android.os.Looper.loop(Looper.java:123)10-01 13:11:33.967: E/AndroidRuntime(1473) ):at android.app.ActivityThread.main(ActivityThread.java:4627)10-01 13:11:33.967:E/AndroidRuntime(1473):at java.lang.reflect.Method.invokeNative(Native Method) 10-01 13:11:33.967:E/AndroidRuntime(1473):在 java.lang.reflect.Method.invoke(Method.java:521)10-01 13:11:33.967: E/AndroidRuntime(1473) ):at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:868) 10-01 13:11:33.967:E/AndroidRuntime(1473):at com.android.internal.os .ZygoteInit.main(ZygoteI E/AndroidRuntime(1473):at dalvik.system.NativeStart.main(本地方法)10-01 13:11:33.967: E/AndroidRuntime(本機方法)10-01 13:11:33.967: E/1473):導致: java.lang.UnsupportedOperationException:設備沒有 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):at com.example.gcm_id.MainActivity.onCreate(MainActivity.java:21) 01 13:11:33.967:E/AndroidRuntime(1473):at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 10-01 13: 11:33.967:E/AndroidRuntime(1473):at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 10-01 13:11:33.967:E/AndroidRuntime(1473):...11多
回答
刪除了答案,因爲它是所有具體的我的應用程序,到過長時間,因爲我有這個工作..我將等待logcat的輸出,而不是
要麼你有錯誤的目標設定您的項目或您的設備不支持Google API。在前一種情況下,將您的構建Traget更改爲其中一個Google API(> = GOOGLE API 10)。它不工作,因爲您的項目找不到GCM工作所需的Google Apis。右鍵單擊您的項目,轉到屬性> Android並更改構建目標。如果您沒有安裝Google Apis,則必須先通過SDK Manager安裝它。
如果您的設備不支持谷歌apis,例如您可能正在仿真器上測試它的目標設置爲Android Api而不是Google Api;創建目標設置爲谷歌API的一個新的仿真器(> = 10)
我也使用谷歌API a17但沒有運行,並沒有給予註冊碼 – aslam
你的設備是否支持谷歌API?例如,您可以在目標未設置爲Google apis的模擬器上嘗試它。如果是這樣的話;創建一個帶有目標集Google Apis(> = 10)的新仿真器。 –
- 1. Android GCM註冊ID錯誤
- 2. GCM註冊ID
- 3. C2DM註冊ID和GCM註冊ID?
- 4. Android GCM註冊ID
- 5. Android GCM註冊ID
- 6. GCM'錯誤:未註冊'
- 7. GCM/APNS如何生成註冊ID
- 8. 每次生成GCM註冊ID
- 9. 註冊ocx文件時發生錯誤?
- 10. GCM:註冊ID或令牌
- 11. 什麼是GCM註冊ID?
- 12. GCM註冊ID爲空
- 13. Android GCM檢索註冊ID
- 14. GCM註冊ID已更改
- 15. Android GCM:空註冊ID
- 16. android GCM註冊ID空白
- 17. GCM框架參數和GCM註冊ID
- 18. 如何註冊gcm從gcm獲得註冊ID
- 19. GCM註冊令牌是否等於GCM註冊ID?
- 20. GCM - 一個註冊ID正在工作,但因多個註冊ID失敗
- 21. java.lang.RuntimeException:創建註冊表單時執行doInBackground()時發生錯誤
- 22. Google Android GCM未註冊錯誤
- 23. GCM返回缺少註冊錯誤
- 24. GCM(Android)和PhoneGap無效註冊錯誤
- 25. 錯誤:未註冊 - GCM推送通知
- 26. Android GCM錯誤。當客戶端註冊
- 27. eclipse中沒有錯誤但在運行時發生錯誤
- 28. 錯誤:ID已被註冊
- 29. GCM在首次執行時不顯示註冊ID?
- 30. MySQL在Python中運行時發生查詢錯誤,但在直接運行時沒有發生錯誤
您需要expain您的問題時/如何分給logcat的輸出。 – cYrixmorten
如果我評論此代碼GCMRegistrar.checkDevice(this)代碼已經運行..但註冊ID沒有給出... – aslam
您仍然需要發佈錯誤輸出。否則無法猜測錯誤的來源。 – cYrixmorten