我的应用程序使用本机代码,因此我的数据目录具有lib目录/data/data/mypackage/lib/libxxx.so
当我从最近列表中滑动删除后在设置中通过'clear cache'
按钮删除缓存时,有时它删除.so文件保留lib目录。 (它发生在LG k10与Android 7.0)。当lib文件夹有libxxx.so时,它在清除缓存之前首次使用时效果很好。
我通过以下代码加载我的lib。
static {
System.loadLibrary("xxx");
}
清除缓存并重新启动应用程序后,会出现以下错误
java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/system/framework/com.google.android.maps.jar", zip file "/data/app/mypackage-1/base.apk"],nativeLibraryDirectories=[/data/app/mypackage-1/lib/arm, /system/fake-libs, /data/app/mypackage-1/base.apk!/lib/armeabi-v7a, /system/lib, /vendor/lib]]] couldn't find "libxxx.so"
此错误后唯一的选择是重新安装应用程序,因为.so文件因未知原因被删除。
在这种情况下我该怎么办?
注意:mypackage
是我的应用的包名,libxxx.so
是本机库。我隐藏的原始名称有些原因。