/vendor/lib64/libOpenCL.so在安卓应用中无访问权限的解决办法

/vendor/lib64/libOpenCL.so在安卓应用中无访问权限的解决办法——
当采用OpenCL对部分NDK代码进行加速的时候,发现运行无法调用厂商提供的libOpenCL库,原因是权限不够,以下为解决办法:

  1. 查看该库文件是否在公共库声明中,如下在adb shell中检查
    adb root
    adb shell
    cd /vendor/etc
    cat public.libraries.txt
    如果显示类似如下
    libMcClient.so
    libMcRegistry.so
    libOpenCL.so
    表明没问题,但如果没有发现libOpenCL.so,表明还需要添加它到public.libraries.txt中,
    echo libOpenCL.so >> public.libraries.txt

  2. 查看是否有对库所在路径的读写权限,在adb shell中执行:
    getenforce
    显示
    Permissive
    则表明OK,如果为
    Enforcing
    则表明当前没有开启读写权限,系统处于被保护状态(readonly system).
    一切以adb root成功为前提,执行以下操作:
    setenforce 0
    这样,应该就能正常使用libOpenCL.so了。如果还不行,那么请查看下/vendor/lib64/下是否真的存在libOpenCL.so文件。

/vendor/lib64/libOpenCL.so在安卓应用中无访问权限的解决办法

上一篇:PHP array_reduce()


下一篇:基于Jquerymobile实现的支持PC、平板、手机移动设备的web应用程序(C#)