简体   繁体   中英

Google Play Games Services for C++ Can't register class

I'm using Google Play Games Services for C++ version 1.4.1. In my JNI_OnLoad I call

gpg::AndroidInitialization::JNI_OnLoad(vm);

The call results in the following errors, after which the login doesn't work:

05-25 21:49:26.027: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/common/ConnectionResult: an exception occurred.
05-25 21:49:26.028: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/common/GooglePlayServicesUtil: an exception occurred.
05-25 21:49:26.028: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/common/api/Api: an exception occurred.
05-25 21:49:26.028: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/common/api/Api$ApiOptions: an exception occurred.
05-25 21:49:26.029: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/common/api/Api$ApiOptions$HasOptions: an exception occurred.
05-25 21:49:26.029: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/common/api/GoogleApiClient: an exception occurred.
05-25 21:49:26.030: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/common/api/GoogleApiClient$Builder: an exception occurred.
05-25 21:49:26.030: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/common/api/PendingResult: an exception occurred.
05-25 21:49:26.030: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/common/api/Result: an exception occurred.
05-25 21:49:26.034: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/common/api/ResultCallback: an exception occurred.
05-25 21:49:26.034: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/common/api/Scope: an exception occurred.
05-25 21:49:26.035: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/common/api/Status: an exception occurred.
05-25 21:49:26.036: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/common/data/DataBufferUtils: an exception occurred.
05-25 21:49:26.036: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/games/Games: an exception occurred.
05-25 21:49:26.036: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/games/Games$GamesOptions: an exception occurred.
05-25 21:49:26.037: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/games/Games$GamesOptions$Builder: an exception occurred.
05-25 21:49:26.037: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/games/Player: an exception occurred.
05-25 21:49:26.038: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/games/PlayerBuffer: an exception occurred.
05-25 21:49:26.038: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/games/PlayerLevel: an exception occurred.
05-25 21:49:26.039: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/games/PlayerLevelInfo: an exception occurred.
05-25 21:49:26.040: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/games/Players: an exception occurred.
05-25 21:49:26.040: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/games/Players$LoadPlayersResult: an exception occurred.
05-25 21:49:26.041: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/games/achievement/Achievement: an exception occurred.
05-25 21:49:26.041: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/games/achievement/Achievements$LoadAchievementsResult: an exception occurred.
05-25 21:49:26.042: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/games/event/Event: an exception occurred.
05-25 21:49:26.042: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/games/event/EventBuffer: an exception occurred.
05-25 21:49:26.043: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/games/event/Events: an exception occurred.
05-25 21:49:26.043: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/games/event/Events$LoadEventsResult: an exception occurred.
05-25 21:49:26.043: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/games/achievement/AchievementBuffer: an exception occurred.
05-25 21:49:26.044: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/games/achievement/Achievements: an exception occurred.
05-25 21:49:26.044: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/games/leaderboard/Leaderboard: an exception occurred.
05-25 21:49:26.045: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/games/leaderboard/LeaderboardBuffer: an exception occurred.
05-25 21:49:26.045: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/games/leaderboard/Leaderboards: an exception occurred.
05-25 21:49:26.045: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/games/leaderboard/LeaderboardScore: an exception occurred.
05-25 21:49:26.046: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/games/leaderboard/LeaderboardScoreBuffer: an exception occurred.
05-25 21:49:26.046: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/games/leaderboard/LeaderboardVariant: an exception occurred.
05-25 21:49:26.047: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/games/leaderboard/Leaderboards$LeaderboardMetadataResult: an exception occurred.
05-25 21:49:26.047: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/games/leaderboard/Leaderboards$LoadScoresResult: an exception occurred.
05-25 21:49:26.048: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/games/multiplayer/Invitation: an exception occurred.
05-25 21:49:26.048: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/games/multiplayer/InvitationBuffer: an exception occurred.
05-25 21:49:26.051: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/games/multiplayer/Invitations: an exception occurred.
05-25 21:49:26.052: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/games/multiplayer/Invitations$LoadInvitationsResult: an exception occurred.
05-25 21:49:26.053: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/games/multiplayer/Multiplayer: an exception occurred.
05-25 21:49:26.053: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/games/multiplayer/Participant: an exception occurred.
05-25 21:49:26.054: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/games/multiplayer/ParticipantResult: an exception occurred.
05-25 21:49:26.055: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/games/multiplayer/turnbased/LoadMatchesResponse: an exception occurred.
05-25 21:49:26.055: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch: an exception occurred.
05-25 21:49:26.056: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchBuffer: an exception occurred.
05-25 21:49:26.057: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchConfig: an exception occurred.
05-25 21:49:26.057: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchConfig$Builder: an exception occurred.
05-25 21:49:26.058: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/games/multiplayer/turnbased/TurnBasedMultiplayer: an exception occurred.
05-25 21:49:26.059: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/games/multiplayer/turnbased/TurnBasedMultiplayer$CancelMatchResult: an exception occurred.
05-25 21:49:26.059: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/games/multiplayer/turnbased/TurnBasedMultiplayer$InitiateMatchResult: an exception occurred.
05-25 21:49:26.060: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/games/multiplayer/turnbased/TurnBasedMultiplayer$LeaveMatchResult: an exception occurred.
05-25 21:49:26.060: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/games/multiplayer/turnbased/TurnBasedMultiplayer$LoadMatchesResult: an exception occurred.
05-25 21:49:26.061: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/games/multiplayer/turnbased/TurnBasedMultiplayer$LoadMatchResult: an exception occurred.
05-25 21:49:26.061: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/games/multiplayer/turnbased/TurnBasedMultiplayer$UpdateMatchResult: an exception occurred.
05-25 21:49:26.061: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/games/quest/Quest: an exception occurred.
05-25 21:49:26.062: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/games/quest/QuestBuffer: an exception occurred.
05-25 21:49:26.062: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/games/quest/Quests: an exception occurred.
05-25 21:49:26.062: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/games/quest/Milestone: an exception occurred.
05-25 21:49:26.063: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/games/quest/Quests$LoadQuestsResult: an exception occurred.
05-25 21:49:26.063: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/games/quest/Quests$AcceptQuestResult: an exception occurred.
05-25 21:49:26.064: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/games/quest/Quests$ClaimMilestoneResult: an exception occurred.
05-25 21:49:26.064: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/games/snapshot/Snapshot: an exception occurred.
05-25 21:49:26.065: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/games/snapshot/SnapshotContents: an exception occurred.
05-25 21:49:26.065: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/games/snapshot/SnapshotMetadata: an exception occurred.
05-25 21:49:26.065: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/games/snapshot/SnapshotMetadataBuffer: an exception occurred.
05-25 21:49:26.066: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/games/snapshot/Snapshots: an exception occurred.
05-25 21:49:26.068: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/games/snapshot/Snapshots$CommitSnapshotResult: an exception occurred.
05-25 21:49:26.069: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/games/snapshot/Snapshots$LoadSnapshotsResult: an exception occurred.
05-25 21:49:26.070: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/games/snapshot/Snapshots$OpenSnapshotResult: an exception occurred.
05-25 21:49:26.070: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/games/snapshot/SnapshotMetadataChange: an exception occurred.
05-25 21:49:26.071: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/games/snapshot/SnapshotMetadataChange$Builder: an exception occurred.
05-25 21:49:26.071: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/games/multiplayer/realtime/RealTimeMessageReceivedListener: an exception occurred.
05-25 21:49:26.072: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/games/multiplayer/realtime/RealTimeMultiplayer: an exception occurred.
05-25 21:49:26.073: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/games/multiplayer/realtime/RealTimeMessage: an exception occurred.
05-25 21:49:26.074: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/games/multiplayer/realtime/Room: an exception occurred.
05-25 21:49:26.074: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/games/multiplayer/realtime/RoomConfig: an exception occurred.
05-25 21:49:26.075: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/games/multiplayer/realtime/RoomConfig$Builder: an exception occurred.
05-25 21:49:26.076: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/appstate/AppStateManager: an exception occurred.
05-25 21:49:26.077: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/nearby/Nearby: an exception occurred.
05-25 21:49:26.077: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/nearby/connection/AppIdentifier: an exception occurred.
05-25 21:49:26.078: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/nearby/connection/AppMetadata: an exception occurred.
05-25 21:49:26.078: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/nearby/connection/Connections: an exception occurred.
05-25 21:49:26.079: E/GamesNativeSDK(18597): Can't register class com/google/android/gms/nearby/connection/Connections$StartAdvertisingResult: an exception occurred.

Googling the issue didn't yield much result. There seemed to have been a similar issue with the Unity plugin and this blog isn't helping much .

Why is this error happening? Has anyone else encountered this?

These errors are caused by the google-play-services jar file not being part of your application. The steps are laid out on https://developers.google.com/games/services/cpp/gettingStartedAndroid Things to check:

  1. You project includes the google-play-services.jar and android-support-v4.jar file (and they are included in the apk file).
  2. That it is a recent version of the library (at least version 22, but the latest is preferred). You can use the SDK manager to download the latest.

If by any chance someone comes across that subject but didn't solve his issue, here's how I fixed mine: I change my Proguard configuration so it does not strip any classes from the com.google.android package.

Ie: from -keep public class com.google.android.gms.* { public *; } -keep public class com.google.android.gms.* { public *; } to -keep public class com.google.android.gms.** { public *; } -keep public class com.google.android.gms.** { public *; }


You may also need to activate multiDex in your build.gradle file with the following lines: buildTypes { yourBuildType_Eg_release { multiDexEnabled true dexOptions { preDexLibraries false incremental true // that's a big heap! javaMaxHeapSize "4g" } } } buildTypes { yourBuildType_Eg_release { multiDexEnabled true dexOptions { preDexLibraries false incremental true // that's a big heap! javaMaxHeapSize "4g" } } }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM