新しいGoogle Cloud Messagingシステムを使用しようとしていますが、いくつかの問題があります。
入門ドキュメントを読み、デモアプリを確認しました。その後、要件をアプリケーションに適用し、API 16で新しい仮想デバイスを作成しました。
しかし、デバイスをGCMに登録しようとすると、次の行が原因で失敗します。
GCMRegistrar.checkDevice(getApplicationContext());
Logcatでは、次のエラーが表示されます。
07-05 07:06:31.925: E/AndroidRuntime(691): FATAL EXCEPTION: main
07-05 07:06:31.925: E/AndroidRuntime(691): Java.lang.UnsupportedOperationException: Device does not have package com.google.Android.gsf
07-05 07:06:31.925: E/AndroidRuntime(691): at com.google.Android.gcm.GCMRegistrar.checkDevice(GCMRegistrar.Java:83)
07-05 07:06:31.925: E/AndroidRuntime(691): at aero.tav.mobile.genel$4.onClick(genel.Java:201)
07-05 07:06:31.925: E/AndroidRuntime(691): at com.Android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.Java:166)
07-05 07:06:31.925: E/AndroidRuntime(691): at Android.os.Handler.dispatchMessage(Handler.Java:99)
07-05 07:06:31.925: E/AndroidRuntime(691): at Android.os.Looper.loop(Looper.Java:137)
07-05 07:06:31.925: E/AndroidRuntime(691): at Android.app.ActivityThread.main(ActivityThread.Java:4745)
07-05 07:06:31.925: E/AndroidRuntime(691): at Java.lang.reflect.Method.invokeNative(Native Method)
07-05 07:06:31.925: E/AndroidRuntime(691): at Java.lang.reflect.Method.invoke(Method.Java:511)
07-05 07:06:31.925: E/AndroidRuntime(691): at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:786)
07-05 07:06:31.925: E/AndroidRuntime(691): at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:553)
07-05 07:06:31.925: E/AndroidRuntime(691): at dalvik.system.NativeStart.main(Native Method)
クラスパスにgcm.jarを追加しました。何が悪いのか分かりません。
間違ったエミュレータを使用しているようです。
デフォルトのエミュレーターは、通常のAndroidエミュレーターを使用します。このエミュレーターは、Googleパッケージを持たず、マップ、c2dmなどのあらゆる種類のものを実行できません。
やりたいことは、Google APIをサポートできる新しいエミュレーターを作成することです。
次に、プロジェクトを実行するときに、ターゲット名Google APIs (Google Inc).
を実行するエミュレーターを選択します
幸運を。
おそらくGCMをサポートしていないデバイスで実行されているため、GCMRegistrar.checkDevice(this);例外をスローしています。 logcatを確認してください。
エミュレーターでテストする場合は、エミュレーターがGoogle APIを使用するように設定されていることを確認してください。エミュレータを作成するとき、新しいAVDの作成ウィンドウには「ターゲット」ボックスがあります。そのボックスで「Google API」と書かれているものを選択します。