为什么 apk 仅在 Android 10 的发布版本中中止?

Why does the apk abort only in the release version on Android 10?

我正在使用 Unity 2018.4 制作 2D 游戏。我仅在发布版本中和可能在 Android 10.

中遇到本机代码(可能来自某些库)的奇怪错误

我不知道如何解释中止消息。

Abort message

我使用的唯一一个不以 Unity 开头的库是 libsqlite3.so 从 SQLite 网站本身提取的。 (Link 这里)

我也有来自 Google Play by Android Vitals 的错误,但它同样不可读。

有谁知道我该如何解决?我的游戏已经在 Play 商店中,但我收到了一些投诉。

SIGSEGV,不错。欢迎来到真正让 Android 崩溃的游戏程序员俱乐部。我有几个猜测,但不能肯定地说。更多信息会很有用 - 这种情况是发生在您发布的所有用户身上,还是只发生在某些设备或设备系列上?

我已经设法做到了同样的事情,但我的崩溃是一致的 - 每次都会发生,而不仅仅是发布。我打开了一些 libGDX 本机对象,然后尝试在关闭它们之前更改 activity。我的崩溃看起来很像你的。检查屏幕更改以确保在尝试更改之前干净地关闭所有对象 activities/fragments.

你提到发布让我想到了 ProGuard。如果你打开它,它可以积极优化 类 即 'unused'。这意味着如果你有 类 你通过反射使用那么它们将不会被编译到发布包中。您可以尝试完全关闭它并发布版本,看看是否能让一切恢复正常。如果这是原因,请查看

-keepclasseswithmembers class [your_class_path].** {*;}

在你的 proguard-rules.pro.

我的怀疑是正确的,问题出在 64x 库 libsqlite3.so,我不太明白可能发生了什么,我用 this 来源的库替换了库。