mapbox-android - 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 的原生代码?
解决方案
仅从堆栈跟踪很难完全诊断这一点。您是否正在为 x86 目标架构构建您的应用程序?您使用的是拆分 APK 还是通用 APK?
我认为您看到的不同行为是因为 Firebase 测试实验室虚拟设备在 x86 上运行,而绝大多数 Android 物理设备都有 ARM 处理器。
“无法加载本机共享库。-com.facebook.soloader.SoLoader$WrongAbiError: APK 是为不同的平台构建的”——似乎表明查找本机 ARM 代码而不是 x86 代码存在问题。
此页面讨论了类似的错误情况:https ://github.com/facebook/react-native/issues/5773
推荐阅读
- java - 使用 Jenkins 运行时无法识别 ole 流错误
- android - 如何打印到热敏蓝牙打印机?
- c# - VB 到 C# 等效的拆分函数
- python - Python - 如何设置法语语言环境?
- java - Spring-JPA - 如何从自联接表中输出有限字段
- mongodb - 无法使用 statefulset 和 sidecar 为 mongodb 创建只读副本
- chef-infra - 当数据包中的某些内容发生更改而不登录厨师客户端机器时如何重新运行食谱
- python - 为什么我的 Keras LSTM 不需要 TimeDistributed?
- reactjs - PropTypes:如何检查对象的枚举?
- android - 使用Java的Appium(Android)中的ADB超时错误