使用应用程序捆绑包,我得到针对<1%的用户的UnsatisfiedLinkError [英] Using an app bundle I get UnsatisfiedLinkError for <1% of users
问题描述
我正在尝试使用新的Android应用程序捆绑包。
I'm trying to use the new Android App Bundles.
我在设备上本地运行了一些测试,并且一切正常。但是,一旦部署到生产环境中,我就开始看到一些类似这样的错误:
I run some test locally on my devices, and everything works correctly. However, once deployed to production, I am starting to see a few errors like this:
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。
The error states that a library I'm using (requery/sqlite-android) cannot find the .so file that it needs. This seems strange, since I checked with bundletool, and in every APK the file .so is there.
该错误发生在两个设备上:三星Galaxy注意7和分别运行Android 6和5的
TECNO-J8。
The error happens on two devices: a Samsung Galaxy Note 7 and a TECNO-J8, running Android 6 and 5 respectively.
根据Play商店,通过Google Play安装的应用会发生错误,因此,我怀疑该错误与APK侧面加载有关。
According to the Play Store, the error happens for app installed through Google Play, so I doubt the error is related to APK sideloading.
生成的APK捆绑包包含以下架构的拆分:
The generated APK bundle includes splits for the following architectures:
- 拆分\base-armeabi_v7a.apk
- 拆分\base-mips.apk
- 拆分\base-arm64_v8a.apk
- 拆分plibase-x86_64.apk
- 拆分\base -x86.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时也很容易伪装此信息(某些用户由于我还不太了解某些原因而学会了这样做)。这些崩溃很可能来自侧面加载,尽管有这种外观,但它们并未安装配置拆分。
Even though the installs are reported from Play, this information can easily be spoofed when using adb (which some users have learnt to do for some reason that I don't quite get yet). Those crashes very likely come from sideloads which don't install the config splits in spite of the appearances.
这篇关于使用应用程序捆绑包,我得到针对<1%的用户的UnsatisfiedLinkError的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!