首页 > 解决方案 > Firebase 模拟器 com.facebook.soloader.SoLoader$WrongAbiError

问题描述

我正在尝试使用 Mapbox Android 库测试一个基本的 Android 应用程序(Kotlin)。我的仪器测试通过在我的开发笔记本电脑上运行的模拟器。但是他们在 Firebase 的运行模拟器的测试实验室中失败了。他们通过了运行物理设备的 Firebase 测试实验室。

我在 Firebase 测试实验室模拟器 Nexus5X 和 Pixel2 上遇到以下异常:

mapboxsdk.MapStrictModeException:地图检测到一个错误,否则会静默失败:无法加载本机共享库。- com.facebook.soloader.SoLoader$WrongAbiError: APK 是在 com.mapbox.mapboxsdk.MapStrictMode.strictModeViolation(MapStrictMode.java:34) 在 com.mapbox.mapboxsdk.LibraryLoader.load(LibraryLoader.java: 49) 在 com.mapbox.mapboxsdk.net.NativeConnectivityListener.(NativeConnectivityListener.java:13)

Firebase 测试实验室的模拟器有什么问题?为什么他们不能加载 Mapbox 的原生代码?

标签: mapbox-androidfirebase-test-lab

解决方案


仅从堆栈跟踪很难完全诊断这一点。您是否正在为 x86 目标架构构建您的应用程序?您使用的是拆分 APK 还是通用 APK?

我认为您看到的不同行为是因为 Firebase 测试实验室虚拟设备在 x86 上运行,而绝大多数 Android 物理设备都有 ARM 处理器。

“无法加载本机共享库。-com.facebook.soloader.SoLoader$WrongAbiError: APK 是为不同的平台构建的”——似乎表明查找本机 ARM 代码而不是 x86 代码存在问题。

此页面讨论了类似的错误情况:https ://github.com/facebook/react-native/issues/5773


推荐阅读