Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/219.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从android加载.so本机库';s obb文件夹_Android_Android Permissions_Apk Expansion Files_Android Native Library - Fatal编程技术网

从android加载.so本机库';s obb文件夹

从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

我有一个.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/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中的文件复制机制