升级到最新的 Google Play 游戏服务导致 null jclass 崩溃

问题描述

我的 Android 应用在使用时正常工作:

dependencies {
    api 'com.google.android.gms:play-services-games:18.0.1'
}

Android Studio IDE 会警告我有新版本可用:21.0.0 并提示我使用该版本。

当我这样做时,我的应用程序崩溃了:

'JNI 在应用程序中检测到错误:RegisterNatives 在调用 RegisterNatives' 时收到 NULL jclass

为什么我的(基于 NDK 的应用)不能运行 21.0.0 版本?使用最新的 SDK 和最新的 NDK。我也使用 GPG C++ SDK 3.1

tooltip

完整的堆栈跟踪:

A/DEBUG: backtrace:
A/DEBUG:       #00 pc 00000000000830f0  /apex/com.android.runtime/lib64/bionic/libc.so (abort+160) (BuildId: cf739dbc84bcc78f7a1500721bfb3758)
A/DEBUG:       #01 pc 00000000004b9468  /apex/com.android.runtime/lib64/libart.so (art::Runtime::Abort(char const*)+2280) (BuildId: a7f7883941fd99b5b3774b9d1cda84bf)
A/DEBUG:       #02 pc 000000000000b458  /system/lib64/libbase.so (android::base::LogMessage::~LogMessage()+580) (BuildId: 36cd125456a5320dd3dcb8cfbd889a1a)
A/DEBUG:       #03 pc 00000000003780ec  /apex/com.android.runtime/lib64/libart.so (art::JavaVMExt::JniAbort(char const*,char const*)+1584) (BuildId: a7f7883941fd99b5b3774b9d1cda84bf)
A/DEBUG:       #04 pc 0000000000378310  /apex/com.android.runtime/lib64/libart.so (art::JavaVMExt::JniAbortV(char const*,char const*,std::__va_list)+108) (BuildId: a7f7883941fd99b5b3774b9d1cda84bf)
A/DEBUG:       #05 pc 000000000036a738  /apex/com.android.runtime/lib64/libart.so (art::(anonymous namespace)::ScopedCheck::AbortF(char const*,...)+136) (BuildId: a7f7883941fd99b5b3774b9d1cda84bf)
A/DEBUG:       #06 pc 0000000000369d88  /apex/com.android.runtime/lib64/libart.so (art::(anonymous namespace)::ScopedCheck::CheckInstance(art::ScopedobjectAccess&,art::(anonymous namespace)::ScopedCheck::InstanceKind,_jobject*,bool)+420) (BuildId: a7f7883941fd99b5b3774b9d1cda84bf)
A/DEBUG:       #07 pc 0000000000368fd8  /apex/com.android.runtime/lib64/libart.so (art::(anonymous namespace)::ScopedCheck::CheckPossibleHeapValue(art::ScopedobjectAccess&,char,art::(anonymous namespace)::JniValueType)+580) (BuildId: a7f7883941fd99b5b3774b9d1cda84bf)
A/DEBUG:       #08 pc 00000000003685f4  /apex/com.android.runtime/lib64/libart.so (art::(anonymous namespace)::ScopedCheck::Check(art::ScopedobjectAccess&,bool,art::(anonymous namespace)::JniValueType*)+652) (BuildId: a7f7883941fd99b5b3774b9d1cda84bf)
A/DEBUG:       #09 pc 00000000003617a0  /apex/com.android.runtime/lib64/libart.so (art::(anonymous namespace)::CheckJNI::RegisterNatives(_jnienv*,_jclass*,JNINativeMethod const*,int)+680) (BuildId: a7f7883941fd99b5b3774b9d1cda84bf)
A/DEBUG:       #10 pc 000000000105f990  /data/app/com.steenriver.littlecrane-vKxrcJbm18z44xXz8l7m5Q==/lib/arm64/liblittlecrane.so (gpg::JavaClass::FinishClassRegistration(_jnienv*,_jclass*)+136) (BuildId: 765927de1ac3fa9caddaabd2674e2bee9d79b55b)
A/DEBUG:       #11 pc 000000000105eeb0  /data/app/com.steenriver.littlecrane-vKxrcJbm18z44xXz8l7m5Q==/lib/arm64/liblittlecrane.so (gpg::JavaClass::Register(_jnienv*,gpg::JavaReference const&)+368) (BuildId: 765927de1ac3fa9caddaabd2674e2bee9d79b55b)
A/DEBUG:       #12 pc 000000000105f408  /data/app/com.steenriver.littlecrane-vKxrcJbm18z44xXz8l7m5Q==/lib/arm64/liblittlecrane.so (gpg::JavaClass::RegisterEmbeddedDexClassesInternal(gpg::JavaReference const&,bool*,std::__ndk1::basic_string<char,std::__ndk1::char_traits<char>,std::__ndk1::allocator<char>> const&,std::__ndk1::vector<gpg::JavaClass*,std::__ndk1::allocator<gpg::JavaClass*>> const&)+1148) (BuildId: 765927de1ac3fa9caddaabd2674e2bee9d79b55b)
A/DEBUG:       #13 pc 000000000105f704  /data/app/com.steenriver.littlecrane-vKxrcJbm18z44xXz8l7m5Q==/lib/arm64/liblittlecrane.so (gpg::JavaClass::RegisterEmbeddedDexClasses(gpg::JavaReference const&)+84) (BuildId: 765927de1ac3fa9caddaabd2674e2bee9d79b55b)
A/DEBUG:       #14 pc 0000000001059fa8  /data/app/com.steenriver.littlecrane-vKxrcJbm18z44xXz8l7m5Q==/lib/arm64/liblittlecrane.so (gpg::AndroidplatformConfiguration::Valid() const+104) (BuildId: 765927de1ac3fa9caddaabd2674e2bee9d79b55b)
A/DEBUG:       #15 pc 000000000108a840  /data/app/com.steenriver.littlecrane-vKxrcJbm18z44xXz8l7m5Q==/lib/arm64/liblittlecrane.so (gpg::GameServices::Builder::Create(gpg::AndroidplatformConfiguration const&)+76) (BuildId: 765927de1ac3fa9caddaabd2674e2bee9d79b55b)
A/DEBUG:       #16 pc 0000000001025560  /data/app/com.steenriver.littlecrane-vKxrcJbm18z44xXz8l7m5Q==/lib/arm64/liblittlecrane.so (StateManager::InitServices(gpg::AndroidplatformConfiguration const&,std::__ndk1::function<void (gpg::AuthOperation)>,std::__ndk1::function<void (gpg::AuthOperation,gpg::AuthStatus)>)+256) (BuildId: 765927de1ac3fa9caddaabd2674e2bee9d79b55b)
A/DEBUG:       #17 pc 0000000001020bb4  /data/app/com.steenriver.littlecrane-vKxrcJbm18z44xXz8l7m5Q==/lib/arm64/liblittlecrane.so (android_main+224) (BuildId: 765927de1ac3fa9caddaabd2674e2bee9d79b55b)
A/DEBUG:       #18 pc 0000000001176348  /data/app/com.steenriver.littlecrane-vKxrcJbm18z44xXz8l7m5Q==/lib/arm64/liblittlecrane.so (BuildId: 765927de1ac3fa9caddaabd2674e2bee9d79b55b)
A/DEBUG:       #19 pc 00000000000e6890  /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+36) (BuildId: cf739dbc84bcc78f7a1500721bfb3758)
A/DEBUG:       #20 pc 0000000000084b6c  /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64) (BuildId: cf739dbc84bcc78f7a1500721bfb3758)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)