gcmregistrar jar Eclipseでエラーが発生し、ソースが見つかりません。デバッグを停止します

StackOverflow https://stackoverflow.com//questions/12666694

質問

私はGoogle GCMを使ってAndroidアプリを登録しようとしていて、Eclipseでエラーが発生しているようです。

登録したかどうかを確認しようとするとすぐに吹き飛ばされます。そのコンパイルは罰金を付けて、GCMよりもJavaとEclipseを理解していないが、誰が知っていると思いますが、これが私のことを知っていると思いますが、を知っていると思います。

import com.google.android.gcm.GCMRegistrar; を無視するためのステップフィルタを追加しました

そして私のローカルlibsフォルダにプロジェクトとビルドパスを含むgdm.jarライブラリを必ず含めました。

コードを踏み込んだ場合、com.google.android.gcm.*が参照されている最初の行にステップを踏み込もうとし、「ソースが見つかりません」と表示されます。ブレークポイントを置くと、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());
        }
    }
}
.

役に立ちましたか?

解決

私は私のGCMプロジェクトの作業をやめなければなりませんでしたが、私は少なくともGCMクライアント側のもののソースを取得することを管理しましたので、ビットをデバッグするのに役立ちます。 R17 SDKツールから始めて、GoogleはソースとJavadocsを正しい痛みに添付していましたが、それはできることです。

gcm.jarが見つかったのと同じ 'dist'ディレクトリにあるjar gcm-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を変更します)

今すぐプロジェクトを閉じてそれを再開し、そうでなければそれはうまくいきません、天はなぜなぜ!

は、「hover over」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);
.

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

他のヒント

ここ、GCMにはAndroid 2.2 以降、最初にあなたのマニフェストのSDKバージョンが正しいか確認

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top