从android加载.so本机库';s obb文件夹
我有一个.so文件,我把它打包成了obb扩展。大约20兆字节 我想用从android加载.so本机库';s obb文件夹,android,android-permissions,apk-expansion-files,android-native-library,Android,Android Permissions,Apk Expansion Files,Android Native Library,我有一个.so文件,我把它打包成了obb扩展。大约20兆字节 我想用 System.load("/storage/emulated/0/Android/obb/com.mypackage.myapp/libtest.so"); 加载库。但我得到了一个错误: dlopen(“/storage/emulated/0/Android/obb/com.mypackage.myapp/libtest.so”,RTLD_LAZY)失败:dlopen失败:无法映射“/storage/emulated/0/A
System.load("/storage/emulated/0/Android/obb/com.mypackage.myapp/libtest.so");
加载库。但我得到了一个错误:
dlopen(“/storage/emulated/0/Android/obb/com.mypackage.myapp/libtest.so”,RTLD_LAZY)失败:dlopen失败:无法映射“/storage/emulated/0/Android/obb/com.mypackage.myapp/libtest.so”段2:权限被拒绝
type=1400 audit(0.0:8):avc:denied{execute}for path=“/storage/emulated/0/Android/obb/com.mypackage.myapp/libtest.so”dev=“fuse”ino=367663176224 scontext=u:r:untrusted\u app:s0tcontext=u:object\r:fuse:s0tclass=file permissive=0
所以我意识到我们不允许在那里有一个可执行文件
所以我的问题是,
1-应在何处提取文件才能执行此操作
2-我应该进行什么函数调用
谢谢。将文件复制到应用程序私有内部存储文件夹下您选择的任何位置,确保该文件标记为只读和可执行(不可写,尤其是其他人!)。这是唯一一个允许可执行文件的应用程序通常可写的位置树 您可以通过在初始化的活动或服务上下文上调用
getFilesDir()
来确定专用文件夹的位置
这里有许多现有的问题,它们演示了Java中的文件复制机制