Jar GCMRegistrar provoquant une erreur dans Eclipse, source introuvable.Débogage des stands

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

Question

J'essaie d'enregistrer une application Android avec Google GCM et cela semble provoquer une erreur dans Eclipse.De l'aide?

explose dès que j'essaie de vérifier s'il est enregistré.Sa compilation est correcte et j'ai ajouté le import com.google.android.gcm.GCMRegistrar; Je pense que c'est plus parce que je ne comprends pas Java et Eclipse, que GCM, mais qui sait

J'ai ajouté des filtres d'étape à ignorer com.google.android.gcm.*

et je me suis assuré d'inclure la bibliothèque gdm.jar dans mon dossier libs local avec mon projet et le chemin de construction.

Si je parcours le code, il s'arrête lorsque j'essaie de franchir la première ligne où GCMRegistrar est référencé et dit et dit "source introuvable".Si je ne mets aucun point d'arrêt, il s'arrête quand il atteint GCMRegistrar et dit "source introuvable".

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());
        }
    }
}
Était-ce utile?

La solution

J'ai dû arrêter de travailler sur mon projet GCM, mais j'ai au moins réussi à obtenir la source des éléments côté client GCM, donc cela pourrait vous aider un peu à déboguer.À partir des outils du SDK R17, Google a rendu l'attachement des sources et des javadocs très pénible, mais cela peut être fait.

Dans le même répertoire 'dist' où vous avez trouvé le fichier gcm.jar se trouve un autre fichier jar gcm-src.jar - c'est la source.Donc, dans votre répertoire libs, créez un nouveau fichier appelé gcm.jar.properties.

Il devrait contenir une ligne comme

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

(Modifiez ceci pour faire référence à votre installation du SDK, en changeant le \\s en /s si vous êtes sous Linux)

Maintenant fermez votre projet et rouvrez-le, sinon ça ne marchera pas, Dieu sait pourquoi !

Vous devriez maintenant avoir des fenêtres contextuelles de type javadoc « survoler » et pouvoir accéder aux méthodes statiques de GCMRegistrar.Quant à la raison pour laquelle votre code explose, cela vous rapprochera peut-être.

Par ailleurs, l'exemple de code sur lequel j'ai basé mon projet avait ces deux lignes au début de l'enregistrement

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

Ils pourraient faire la lumière sur les choses

Autres conseils

Selon ici, GCM nécessite Android 2.2 ou version ultérieure, vérifiez d'abord si les versions de votre SDK manifeste sont correctes

Deuxièmement, faites un clic droit sur votre projet et sélectionnez Propriétés => Chemin de construction Java => Bibliothèques et assurez-vous que gcm.jar existe dans la liste

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top