'清除缓存'从设置中删除数据目录中的.so文件

时间:2017-07-08 10:18:57

标签: android caching java-native-interface unsatisfiedlinkerror

我的应用程序使用本机代码,因此我的数据目录具有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是本机库。我隐藏的原始名称有些原因。

0 个答案:

没有答案