Frage

Ich versuche, eine Android-App bei Google GCM zu registrieren und sie scheint einen Fehler in Eclipse zu verursachen.Irgendeine Hilfe?

explodiert, sobald ich versuche zu überprüfen, ob es registriert ist.Es lässt sich gut kompilieren und ich habe das hinzugefügt import com.google.android.gcm.GCMRegistrar; Ich denke, es liegt eher daran, dass ich Java und Eclipse nicht verstehe, als an GCM, aber wer weiß

Ich habe Schrittfilter zum Ignorieren hinzugefügt com.google.android.gcm.*

und ich habe dafür gesorgt, dass die gdm.jar-Bibliothek in meinem lokalen libs-Ordner mit meinem Projekt und dem Build-Pfad enthalten ist.

Wenn ich den Code schrittweise durchgehe, stoppt er, wenn ich versuche, über die erste Zeile zu gehen GCMRegistrar wird referenziert und sagt und sagt „Quelle nicht gefunden“.Wenn ich keine Haltepunkte setze, stoppt es trotzdem, wenn es erreicht wird GCMRegistrar und sagt „Quelle nicht gefunden“.

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());
        }
    }
}
War es hilfreich?

Lösung

Ich musste mit der Arbeit an meinem GCM-Projekt aufhören, aber ich habe es zumindest geschafft, die Quelle für die clientseitigen GCM-Inhalte zu bekommen, sodass es Ihnen beim Debuggen vielleicht ein wenig helfen könnte.Beginnend mit den R17 SDK-Tools hat Google das Anhängen von Quell- und Javadocs zu einer echten Herausforderung gemacht, aber es ist machbar.

Im selben „dist“-Verzeichnis, in dem Sie gcm.jar gefunden haben, befindet sich ein weiteres jar, gcm-src.jar – das ist die Quelle.Erstellen Sie also in Ihrem libs-Verzeichnis eine neue Datei mit dem Namen gcm.jar.properties.

Es sollte eine Zeile wie enthalten

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

(Bearbeiten Sie dies, um auf Ihre SDK-Installation zu verweisen, und ändern Sie das \\s in /s, wenn Sie Linux verwenden.)

Schließen Sie jetzt Ihr Projekt und öffnen Sie es erneut, sonst funktioniert es nicht, der Himmel weiß warum!

Sie sollten jetzt Popups vom Typ „Javadoc“ haben, über die Sie mit der Maus fahren können, und Sie sollten in der Lage sein, in die statischen Methoden von GCMRegistrar einzusteigen.Was den Grund betrifft, warum Ihr Code explodiert, vielleicht bringt Sie das näher.

Übrigens hatte der Beispielcode, auf dem ich mein Projekt basierte, zu Beginn der Registrierung diese beiden Zeilen

// 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);

Sie könnten etwas Licht ins Dunkel bringen

Andere Tipps

Entsprechend Hier, GCM erfordert Android 2.2 oder später: Überprüfen Sie zunächst, ob Ihre Manifest-SDK-Versionen korrekt sind

Zweitens klicken Sie mit der rechten Maustaste auf Ihr Projekt und wählen Sie es aus Eigenschaften => Java-Build-Pfad => Bibliotheken Tab und stellen Sie sicher, dass gcm.jar in der Liste vorhanden ist

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top