Unity Firebase 6.2+ Android 在 64 位上启动时崩溃

per*_*rtz 5 android unity-game-engine admob firebase google-play-services

(编辑:它与 Firebase 无关,但与 Unity 和 Google Play 服务有关,请查看第一条评论)

由于我将我的应用程序升级到 Firebase 6.2.x,它在 Android 上启动时崩溃(在启动画面之前/期间)。

一些信息:

  • 我认为这只发生在 64 位(不是 100% 确定,必须仔细检查)
  • 这仅在新安装时发生。对于已安装该应用程序的所有用户,将应用程序更新到 Firebase 6.2 版本不会导致崩溃。但是,如果此人卸载并重新安装该应用程序,它就会崩溃。
  • 但即使它在启动时崩溃,如果我用相同的版本(通过 USB)重新安装它,应用程序也会运行得很好(这对我来说没有意义)。当然,如果我卸载它并重新安装它会再次开始崩溃。
  • 同样,如果应用程序无法运行,但我将其更新为新版本(没有其他更改,只是版本号),它也可以正常工作。这通过 USB 或在生产中 (Google Play) 发生,并且已得到该应用程序的多个用户的确认(每当更新时,该应用程序将重新开始工作)
  • 我尝试创建一个虚拟测试项目来复制问题,但该新项目在 Firebase 6.2.x 上运行良好。我已将我能想到的所有内容(设置、库、AndroidManifest.xml 等)复制到这个新项目中,但它仍然可以正常运行。我比较了两个项目的构建日志,文件/依赖项/等几乎都相同,找不到任何可能导致实际项目出现问题的相关信息。
  • 似乎在 Firebase 6.2 上他们添加了一些 Jetpack/Jetifier/etc 的东西,这可能与问题有关。我尝试在最新的 Android Resolver 上禁用 [X] Use Jetifier 以查看它是否有任何效果,但它会在构建过程中自动重新启用。
  • 我使用最新的 Unity 2019.1(当前为 .12f)、IL2CPP、.NET 4.x、Minimum API 16 (4.1) 和 Target API 28 (9.0)。我使用随 Unity Android 模块一起安装的 NDK/SDK。此问题在 Asset Bundle 或常规 APK 中都会发生。

如果我将库恢复到 Firebase 6.0.0,它可以正常工作,不会崩溃。这将是我现在的解决方案,但我真的需要能够使用最新的 Firebase 版本运行我的应用程序,我不能坚持使用旧的 Firebase。

我得到的崩溃是这样的:

2019-07-31 12:01:01.837 1346-3648/? I/ActivityManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 pkg=com.mycompany.myapp cmp=com.mycompany.myapp/com.unity3d.player.UnityPlayerActivity} from uid 10036
2019-07-31 12:01:01.850 1346-3648/? E/ANDR-PERF-JNI: com_qualcomm_qtiperformance_native_perf_io_prefetch_start
2019-07-31 12:01:01.889 1346-3648/? D/ActivityTrigger: activityResumeTrigger: The activity in ApplicationInfo{97cb34f com.mycompany.myapp} is now in focus and seems to be in full-screen mode
2019-07-31 12:01:01.889 1346-3648/? E/ActivityTrigger: activityResumeTrigger: not whiteListedcom.mycompany.myapp/com.unity3d.player.UnityPlayerActivity/572
2019-07-31 12:01:01.889 1346-3648/? D/ActivityTrigger: ActivityTrigger activityPauseTrigger 
2019-07-31 12:01:01.905 1346-3648/? D/ActivityTrigger: activityResumeTrigger: The activity in ApplicationInfo{97cb34f com.mycompany.myapp} is now in focus and seems to be in full-screen mode
2019-07-31 12:01:01.905 1346-3648/? E/ActivityTrigger: activityResumeTrigger: not whiteListedcom.mycompany.myapp/com.unity3d.player.UnityPlayerActivity/572
2019-07-31 12:01:01.925 1346-3648/? D/Boost: hostingType=activity, hostingName=com.mycompany.myapp/com.unity3d.player.UnityPlayerActivity, callerPackage=com.android.vending, isSystem=true, isBoostNeeded=false.
2019-07-31 12:01:01.927 1346-3648/? I/ActivityManager: Start proc 25225:com.mycompany.myapp/u0a293 for activity com.mycompany.myapp/com.unity3d.player.UnityPlayerActivity caller=com.android.vending
2019-07-31 12:01:01.929 25225-25225/? E/ycompany.myap: Not starting debugger since process cannot load the jdwp agent.
2019-07-31 12:01:01.955 25225-25225/? I/ycompany.myap: The ClassLoaderContext is a special shared library.
2019-07-31 12:01:01.958 25225-25225/? W/ycompany.myap: JIT profile information will not be recorded: profile file does not exits.
2019-07-31 12:01:01.969 25225-25225/? I/Perf: Connecting to perf service.
2019-07-31 12:01:01.986 25225-25225/? I/FirebaseInstanceId: App restored, clearing state
2019-07-31 12:01:01.993 25225-25225/? I/FirebaseInitProvider: FirebaseApp initialization successful
2019-07-31 12:01:02.034 25225-25243/? I/FA: App measurement is starting up, version: 16250
2019-07-31 12:01:02.034 25225-25243/? I/FA: To enable debug logging run: adb shell setprop log.tag.FA VERBOSE
2019-07-31 12:01:02.034 25225-25243/? I/FA: To enable faster debug mode event logging run:
      adb shell setprop debug.firebase.analytics.app com.mycompany.myapp
2019-07-31 12:01:02.089 25225-25243/? I/FA: Tag Manager is not found and thus will not be used
2019-07-31 12:01:02.147 25225-25225/? E/LB: fail to open file: No such file or directory
2019-07-31 12:01:02.161 25225-25248/? I/Unity: SystemInfo CPU = ARM64 FP ASIMD AES, Cores = 8, Memory = 5634mb
2019-07-31 12:01:02.161 25225-25248/? I/Unity: SystemInfo ARM big.LITTLE configuration: 4 big (mask: 0xf0), 4 little (mask: 0xf)
2019-07-31 12:01:02.161 25225-25248/? I/Unity: ApplicationInfo com.mycompany.myapp version 5.7.2G build xxxxxx
2019-07-31 12:01:02.161 25225-25248/? I/Unity: Built from '2019.1/staging' branch, Version '2019.1.12f1 (f04f5427219e)', Build type 'Release', Scripting Backend 'il2cpp', CPU 'arm64-v8a', Stripping 'Enabled'
2019-07-31 12:01:02.183 25225-25248/? E/CRASH: signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0000000000000000
2019-07-31 12:01:02.183 25225-25248/? E/CRASH: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
2019-07-31 12:01:02.183 25225-25248/? E/CRASH: Build type 'Release', Scripting Backend 'il2cpp', CPU 'arm64-v8a'
2019-07-31 12:01:02.183 25225-25248/? E/CRASH: Build fingerprint: 'Xiaomi/xxxxxxx/release-keys'
2019-07-31 12:01:02.183 25225-25248/? E/CRASH: Revision: '0'
2019-07-31 12:01:02.183 25225-25248/? E/CRASH: pid: 25225, tid: 25248, name: UnityMain  >>> com.mycompany.myapp <<<
2019-07-31 12:01:02.183 25225-25248/? E/CRASH:     x0   00000000000005cd  x1   0000000000000000  x2   0000006f6a514980  x3   0000006f6b741368
2019-07-31 12:01:02.183 25225-25248/? E/CRASH:     x4   0000006f6a514a40  x5   0000000000000004  x6   fefeff6e67659bff  x7   7f7f7f7f7f7fff7f
2019-07-31 12:01:02.183 25225-25248/? E/CRASH:     x8   0000000000000000  x9   00000000003832e4  x10  0000006f670c9890  x11  000000000002e24c
2019-07-31 12:01:02.183 25225-25248/? E/CRASH:     x12  0000006f68acb740  x13  0000000000007ac0  x14  0000000000000140  x15  aaaaaaaaaaaaaaab
2019-07-31 12:01:02.183 25225-25248/? E/CRASH:     x16  0000006f68be0af0  x17  0000007006bddef0  x18  0000000000000000  x19  0000006f7fb2c500
2019-07-31 12:01:02.183 25225-25248/? E/CRASH:     x20  0000006f6703207c  x21  0000006f6b741368  x22  0000000000000000  x23  0000006f6a51499c
2019-07-31 12:01:02.183 25225-25248/? E/CRASH:     x24  0000006f68ca2000  x25  0000006f68ca2000  x26  00000000e9bd37a7  x27  0000000000000006
2019-07-31 12:01:02.183 25225-25248/? E/CRASH:     x28  0000000000012154  x29  0000006f6b740f00  x30  0000006f67924794
2019-07-31 12:01:02.183 25225-25248/? E/CRASH:     sp   0000006f6b740dc0  pc   0000006f6792f05c  pstate 0000000000000000
2019-07-31 12:01:02.183 25225-25248/? E/CRASH: backtrace:
2019-07-31 12:01:02.209 25225-25248/? E/CRASH:  #00  pc 000000000000069c  [vdso] ()
2019-07-31 12:01:02.210 25225-25248/? E/CRASH:  #01  pc 000000000052c058  /data/app/com.mycompany.myapp-W26Dq_uyKkK1OxQ3Dts71g==/split_config.arm64_v8a.apk ()
2019-07-31 12:01:02.210 25225-25248/? E/CRASH:  #02  pc 0000000000521790  /data/app/com.mycompany.myapp-W26Dq_uyKkK1OxQ3Dts71g==/split_config.arm64_v8a.apk ()
[...]
 Process: com.mycompany.myapp, PID: 25225
    java.lang.Error: signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0000000000000000
    Build fingerprint: 'Xiaomi/xxxxxx/release-keys'
    Revision: '0'
    pid: 25225, tid: 25248, name: UnityMain  >>> com.mycompany.myapp <<<
        x0   00000000000005cd  x1   0000000000000000  x2   0000006f6a514980  x3   0000006f6b741368
        x4   0000006f6a514a40  x5   0000000000000004  x6   fefeff6e67659bff  x7   7f7f7f7f7f7fff7f
        x8   0000000000000000  x9   00000000003832e4  x10  0000006f670c9890  x11  000000000002e24c
        x12  0000006f68acb740  x13  0000000000007ac0  x14  0000000000000140  x15  aaaaaaaaaaaaaaab
        x16  0000006f68be0af0  x17  0000007006bddef0  x18  0000000000000000  x19  0000006f7fb2c500
        x20  0000006f6703207c  x21  0000006f6b741368  x22  0000000000000000  x23  0000006f6a51499c
        x24  0000006f68ca2000  x25  0000006f68ca2000  x26  00000000e9bd37a7  x27  0000000000000006
        x28  0000000000012154  x29  0000006f6b740f00  x30  0000006f67924794
        sp   0000006f6b740dc0  pc   0000006f6792f05c  pstate 0000000000000000

        at [vdso].(:0)
        at split_config.(:0)
        at split_config.(:0)
[...]
Run Code Online (Sandbox Code Playgroud)

任何指针?关于可能导致这种情况的任何想法,或者我可以进行什么测试?

也许它与缓存有关(因为在第二次安装时它可以工作),也许与 Google Play 服务有关?

好吧,如果有人遇到类似的问题,请发送一些信息。