在Android上使用System.load?

时间:2016-07-16 06:05:34

标签: java android java-native-interface

我尝试从内部存储中加载Android中的库(我让用户从外部下载它,以减少apk大小)

但是每当我在活动中执行System.load()时,我都会遇到以下错误:

Localized Message: dlopen failed: couldn't map "/storage/emulated/0/libtest.so" segment 2: Permission denied
Message: dlopen failed: couldn't map "/storage/emulated/0/libtest.so" segment 2: Permission denied

我还尝试将.so文件复制到/ data / local / tmp并从那里加载,但是出现了同样的错误。

有解决方法吗?

2 个答案:

答案 0 :(得分:0)

我看到权限被拒绝,你可以尝试将文件权限设置为777

答案 1 :(得分:0)

您要定位哪个API级别?,对于API级别> = 23,您需要提供动态运行时权限。