GCM に登録しようとすると、このエラーが発生します。私の AVD ターゲットは Android 4.2.2 で、API レベルは 17 です。SGS3 4.2.2 では正常に動作しますが、Galaxy GT-I9003 とすべてのバージョンのエミュレータでは動作しません。すべてのライブラリを適切なフォルダーにインポートしました。誰かが私たちを助けることができるなら、解決策を書いてください!
07-22 16:09:02.023: W/System.err(12698): java.io.IOException: SERVICE_NOT_AVAILABLE
07-22 16:09:02.023: W/System.err(12698): at com.google.android.gms.gcm.GoogleCloudMessaging.register(Unknown Source)
07-22 16:09:02.023: W/System.err(12698): at appgelato.ui.HomeActivity$5.doInBackground(HomeActivity.java:237)
07-22 16:09:02.031: W/System.err(12698): at appgelato.ui.HomeActivity$5.doInBackground(HomeActivity.java:1)
07-22 16:09:02.031: W/System.err(12698): at android.os.AsyncTask$2.call(AsyncTask.java:185)
07-22 16:09:02.039: W/System.err(12698): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:306)
07-22 16:09:02.039: W/System.err(12698): at java.util.concurrent.FutureTask.run(FutureTask.java:138)
07-22 16:09:02.039: W/System.err(12698): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088)
07-22 16:09:02.039: W/System.err(12698): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581)
07-22 16:09:02.039: W/System.err(12698): at java.lang.Thread.run(Thread.java:1019)
私のコードは次のとおりです。
try {
if (gcm == null) {
gcm = GoogleCloudMessaging.getInstance(context);
}
while (regid.equals("")) {
regid = gcm.register(SENDER_ID); //STOP HERE AND CALL EXCEPTION
msg = "Device registered, registration id=" + regid;
setRegistrationId(context, regid);
}
Controller.setDeviceToken(regid);
} catch (IOException ex) {
ex.printStackTrace();
msg = "Error :" + ex.getMessage();
}