Crash de l'application Android avec BaseGameActivity

Donc, un peu difficile à demander. Je veux utiliser le service google play access pour accéder à un classement pour mon jeu. J'ai essayé d'utiliser BaseGameActivity comme il est montré ici Accès aux API des jeux

J'ai essayé quelques choses, fait des recherches, mais je ne peux pas comprendre le problème. Mon application se bloque lorsque la baseGameActivity est démarrée. L'erreur de journal s'affiche:

  • Comment désactiver la luminosité automatique sur Android?
  • Le moyen le plus rapide de dupliquer un projet Android?
  • Comment accéder à la nouvelle API de Gmail à partir de mon application Android?
  • Android Obtenez l'horodatage actuel?
  • Comment détecter la rotation de l'écran?
  • Pourquoi il n'y a pas de "Nexus 5" dans AVD Manager? Quelle option utiliser à la place?
  • 03-10 17:44:54.071: E/AndroidRuntime(31435): FATAL EXCEPTION: main 03-10 17:44:54.071: E/AndroidRuntime(31435): java.lang.IllegalStateException: A fatal developer error has occurred. Check the logs for further information. 03-10 17:44:54.071: E/AndroidRuntime(31435): at com.google.android.gms.internal.dw$hb(Unknown Source) 03-10 17:44:54.071: E/AndroidRuntime(31435): at com.google.android.gms.internal.dw$hb(Unknown Source) 03-10 17:44:54.071: E/AndroidRuntime(31435): at com.google.android.gms.internal.dw$b.bR(Unknown Source) 03-10 17:44:54.071: E/AndroidRuntime(31435): at com.google.android.gms.internal.dw$a.handleMessage(Unknown Source) 

    La console montre:

    [2014-03-10 17:47:18 – BaseGameUtils] Impossible de trouver BaseGameUtils.apk!

    Réponse: J'ai dû faire deux métadonnées sur l'appid dans le manifeste. Le journal sans filtres répertorie les erreurs correspondantes

    Les deux entrées étaient

     <meta-data android:name="com.google.android.gms.games.APP_ID" android:value="@string/app_id" /> <meta-data android:name="com.google.android.gms.appstate.APP_ID" android:value="@string/app_id" /> 

    Seule une de ces entrées a été mentionnée dans le didacticiel.

  • L'appel de la méthode native deux fois de la bibliothèque de tiers dans une activité entraîne la fermeture de l'application Android
  • Android Facebook style slide
  • Comment Android SharedPreferences sauvegarde / stocke l'objet
  • Est-ce que "ShouldOverrideUrlLoading" est-il vraiment obsolète? En quoi puis-je utiliser à la place?
  • Webcal: // soutien sur Android ne fonctionne pas - existe-t-il une alternative d'alimentation de calendrier prise en charge
  • Comment utiliser la nouvelle configuration de contrainte Android pour réduire la hiérarchie de vue
  • 2 Solutions collect form web for “Crash de l'application Android avec BaseGameActivity”

    Je viens juste de mettre en place des tableaux de classement et c'était une douleur, mais je l'ai fait et ça marche. Voici une longue liste de suggestions qui peuvent vous aider directement ou indirectement. J'utilise Eclipse.

    • Pour l'API Google Play, le SDK minimum est de 9, donc mettez-le dans votre manifeste sur sa propre ligne:

      <Uses-sdk android: minSdkVersion = "9" android: targetSdkVersion = "19" /> // quel que soit votre objectif

    • Importez le projet BaseGameUtils dans votre espace de travail. Vous ne devez modifier aucun de ces codes.

    • Importer google-play-services_lib. Ceci est dans votre dossier sdk. Mon dossier sdk se trouve à côté de mon dossier eclipse. Quoi qu'il en soit, cela se trouve dans: sdk / extras / google / google_play_services / libproject / google-play-services_lib. Vous ne devez modifier aucun de ces codes.

    • Cliquez avec le bouton droit de la souris sur YourProject dans l'onglet de l'explorateur de package (normalement sur le côté gauche d'eclipse avec tous vos dossiers de projet). Ensuite, cliquez sur Propriétés (Alt + Entrée). Ensuite, cliquez sur Android. Dans la partie inférieure de la page Android, vous devez être "Bibliothèque". Cliquez sur le bouton Ajouter et ajoutez BaseGameUtils et google-play-services_lib. Ne cliquez pas sur "Is Library".

    • Assurez-vous que tous les fichiers android-support-v4.jar dans tous les projets concernés utilisent la même version à jour. Vous pouvez mettre à jour votre fichier de support en cliquant avec le bouton droit sur votre projet dans l'onglet "package explorer" et en allant à -> Outils Android-> Ajouter une bibliothèque de support. Ensuite, vous acceptez et mettez à jour. Vous pouvez également vérifier si tous les projets répertoriés ont ce jar mis à jour en cliquant avec le bouton droit sur votre projet et en allant aux propriétés. Ensuite, cliquez sur Java Build Path, puis cliquez sur l'onglet bibliothèques. Vous devriez voir le jar de support répertorié. Sinon, vous pouvez ajouter le pot, où il se trouve dans le projet. Si vous ne le faites pas, vous pouvez avoir quelque chose appelé JAR MIXMATCH. Bien sûr, vous verrez le problème exact dans votre console afin que cela soit facile à corriger et à diagnostiquer.

    • Votre manifeste doit être: <meta-data android: nom = "com.google.android.gms.games.APP_ID" android: value = "@ string / app_id" /> <meta-data android: name = "com.google .android.gms.version "android: value =" @ integer / google_play_services_version "/>

    La dernière ligne avec @integer examine la version google_play_services_version afin que vous ne devez rien faire à l'avenir chaque fois que la version google play change. Ne codez pas correctement la valeur du numéro de version ou vous devrez la mettre à jour manuellement.

    • MyProject étend BaseGameActivity.

    • Ensuite, pour appeler le classement et le mettre à jour, leur exemple de code de 2 lignes de code est génial. Voir ci-dessous. https://developers.google.com/games/services/android/leaderboards Vous devez passer l'ID de votre classement lorsque vous reliez votre application à la console de développement google play. C'est une chaîne qui ressemble à quelque chose comme: "DkbGvageyBASEWEFCx". La mise à jour et l'obtention d'un classement se bloqueront si vous n'êtes pas connecté. Consultez cet exemple complet de code ci-dessous.

      // pour mettre à jour si (getApiClient (). IsConnected ()) // getAPIClient fait partie de BaseGameUtils Games.Leaderboards.submitScore (getApiClient (), leaderboardID, score);

      // pour montrer si (getApiClient (). IsConnected ()) startActivityForResult (Games.Leaderboards.getLeaderboardIntent (getApiClient (), leaderboardID), 1337);

    • Enfin, si vous utilisez une application avec un magasin de clés différent qui a un SHA1 (Secure Hash Algorithm) différent de celui que vous avez sur Google Store, il y aura une erreur et vous ne pourrez pas vous connecter. Donc, si vous avez téléchargé une application avec un magasin de clés avec un SHA1 comme ab: cd: de … et vous déboguez votre application, vous pouvez voir des problèmes car Eclipse utilisera un magasin de sauvegarde de débogage Android compatible avec un SHA1 différent. Vous ne pourrez pas vous connecter et par conséquent, vous ne pourrez utiliser aucun service Google Play.

    • Je vous recommande de regarder l'exemple de code appelé "Trivial Quest". https://github.com/playgameservices/android-samples C'est sous eclipse_compat. Cet exemple de code montre comment se connecter et débloquer une réalisation. Si vous pouvez vous connecter, vous pouvez faire des réalisations et des tableaux de classement très facilement.

    • Il y a beaucoup de choses mais vous ne nous avez donné qu'un petit morceau du puzzle. Si vous avez d'autres problèmes, veuillez nous le faire savoir.

    Je pense, peut-être, que vous devez mettre Google Play Services Library dans vos dépendances,

    Dans cette ligne:

    03-10 17: 44: 54.071: E / AndroidRuntime (31435): à com.google.android.gms.internal.dw $ hb (Source inconnue)

    Probablement vous avez des problèmes avec la dépendance des cartes de Google, la bibliothèque GMS de Google est utilisée

    Aux cartes et aux autres services de Google Play Services, si vous avez des problèmes avec cela, est possible que vous ayez ajouté des versions incorrectes dans votre projet.

    Le meilleur moyen pour vous est de réduire les services Google Play pour les jeux et de mettre votre projet

    Dépendances.

    https://developers.google.com/games/services/downloads/ (ces services Google Play sont spécifiques aux jeux)

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.