0

AndroidアプリをGoogleGCMに登録しようとしていますが、Eclipseでエラーが発生しているようです。ヘルプはありますか?

登録されているかどうかを確認しようとするとすぐに爆発します。それはうまくコンパイルされ、 import com.google.android.gcm.GCMRegistrar; 私はこれを追加しました。これは、GCMよりもJavaとEclipseを理解していない私に関するものだと思いますが、誰が知っていますか?

無視するステップフィルターを追加しましたcom.google.android.gcm.*

プロジェクトとビルドパスとともに、ローカルのlibsフォルダーにgdm.jarライブラリを含めるようにしました。

コードをステップスルーすると、GCMRegistrar参照されている最初の行をステップオーバーしようとすると停止し、「ソースが見つかりません」と表示されます。ブレークポイントを設定しない場合でも、ヒットGCMRegistrarして「ソースが見つかりません」と表示されたときに停止します。

private void checkRegistration(){
    try{
            if (!GCMRegistrar.isRegistered(getApplicationContext())) {
                 // Automatically registers application on startup.
                GCMRegistrar.register(getApplicationContext(), Utilities.GCM_SENDER_ID);
            } else {
                final String regId = GCMRegistrar.getRegistrationId(getApplicationContext());
                if(regId.equals("")){
                    GCMRegistrar.register(getApplicationContext(), Utilities.GCM_SENDER_ID);
                }else{
                // Device is already registered on GCM

                    if(regId == Utilities.getGcmRegKey(this)){

                    }else{
                        pwClient.updateGCMRef("add", regId, Utilities.getApiKey(this), Utilities.getDeviceId(this));
                        Utilities.setGcmRegKey(this, regId);
                    }
                }
            }
        }catch(Exception ex){
            Log.e("PW", "register error: " + ex.getMessage());
        }
    }
}
4

2 に答える 2

3

GCMプロジェクトでの作業をやめなければなりませんでしたが、少なくともGCMクライアント側のもののソースを取得できたので、少しデバッグするのに役立つかもしれません。R17 SDKツールから始めて、Googleはソースとjavadocsの添付を適切な苦痛にしましたが、それは可能です。

gcm.jarを見つけたのと同じ'dist'ディレクトリに、別のjargcm-src.jarがあります。これがソースです。したがって、libsディレクトリにgcm.jar.propertiesという新しいファイルを作成します。

次のような1行が含まれている必要があります

src=C:\\dev\\tools\\android-sdk-windows4.1\\extras\\google\\gcm\\gcm-client\\dist\\gcm-src.jar

(これを編集してSDKのインストールを参照し、Linuxを使用している場合は\\sを/sに変更します)

次に、プロジェクトを閉じて再度開きます。そうしないと、機能しません。天国はその理由を知っています。

これで、javadocタイプのポップアップに「カーソルを合わせる」ことができ、GCMRegistrar静的メソッドにステップインできるようになります。あなたのコードが爆発する理由に関しては、多分これはあなたを近づけるでしょう。

ちなみに、私がプロジェクトのベースにしたサンプルコードには、登録の開始時にこれらの2行が含まれていました

// Check that the device supports GCM (should be in a try / catch)
GCMRegistrar.checkDevice(this);
// Check the manifest to be sure this app has all the required permissions.
GCMRegistrar.checkManifest(this);

彼らは物事にいくつかの光を当てるかもしれません

于 2012-10-04T14:26:47.703 に答える
0

ここによると、GCMにはAndroid 2.2以降が必要です。まず、マニフェストSDKのバージョンが正しいかどうかを確認してください

次に、プロジェクトを右クリックして、[プロパティ] =>[ Javaビルドパス] =>[ライブラリ]タブを選択し、gcm.jarがリストに存在することを確認します。

于 2012-10-07T07:07:21.630 に答える