我正在尝试使用新的 Android 应用程序包。
我在我的设备上本地运行一些测试,一切正常。然而,一旦部署到生产中,我开始看到一些如下错误:
java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/xyz/base.apk"],nativeLibraryDirectories=[/data/app/xyz/lib/arm, /vendor/lib, /system/lib]]] couldn't find "libsqlite3x.so"
java.lang.Runtime.loadLibrary (Runtime.java)
java.lang.System.loadLibrary (System.java)
io.requery.android.database.sqlite.SQLiteDatabase.<clinit> (SQLiteDatabase.java:86)
io.requery.android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked (SQLiteOpenHelper.java:241)
io.requery.android.database.sqlite.SQLiteOpenHelper.getReadableDatabase (SQLiteOpenHelper.java:199)
...
该错误表明我正在使用的库(requery/sqlite-android)找不到它需要的 .so 文件。
这看起来很奇怪,因为我用bundletool检查过,并且在每个APK中都有.so文件。
该错误发生在两台设备上:三星 Galaxy Note 7 和
TECNO-J8,分别运行Android 6和5。
根据 Play 商店的说法,该错误发生在通过 Google Play 安装的应用程序上,因此我怀疑该错误与 APK 侧载有关。
生成的 APK 包包含以下架构的拆分:
- splits\base-armeabi_v7a.apk
- splits\base-mips.apk
- splits\base-arm64_v8a.apk
- splits\base-x86_64.apk
- splits\base-x86.apk
你有什么提示吗?
尽管安装是从 Play 报告的,但在使用 adb 时,这些信息很容易被欺骗(一些用户已经学会了这样做,但我还不太明白)。这些崩溃很可能来自侧面加载,尽管看起来如此,但侧面加载并未安装配置分割。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)