我想在我的Android Studio项目中的库下面导入这些库,这些库位于 / system / lib64 /文件夹中。 我遇到错误了
2020-01-06 13:23:31.358 5171-5171/org.strongswan.android E/AndroidRuntime: FATAL EXCEPTION: main
Process: org.strongswan.android, PID: 5171
java.lang.UnsatisfiedLinkError: dlopen failed: library "/system/lib64/libstrongswan.so" needed or dlopened by "/system/lib64/libnativeloader.so" is not accessible for the namespace "classloader-namespace"
at java.lang.Runtime.loadLibrary0(Runtime.java:1016)
at java.lang.System.loadLibrary(System.java:1669)
at org.strongswan.android.logic.CharonVpnService.<init>(CharonVpnService.java:730)
at java.lang.Class.newInstance(Native Method)
at android.app.AppComponentFactory.instantiateService(AppComponentFactory.java:103)
at android.app.ActivityThread.handleCreateService(ActivityThread.java:3740)
at android.app.ActivityThread.access$1400(ActivityThread.java:238)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1803)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7073)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:964)
在 System.loadLibrary(“ strongswan”)
System.loadLibrary("strongswan");
if (MainActivity.USE_BYOD)
{
System.loadLibrary("tncif");
System.loadLibrary("tnccs");
System.loadLibrary("imcv");
}
System.loadLibrary("hydra");
System.loadLibrary("charon");
System.loadLibrary("ipsec");
System.loadLibrary("androidbridge");
}
答案 0 :(得分:1)
从牛轧糖开始,Android禁止从系统库中运行私有符号的运行时链接(请参阅Android Developers中的this blogpost)。 您有两种选择:
/system/lib/
中查找它们;或/system/etc/public.libraries.txt
来完成。答案 1 :(得分:0)
我也遇到这个错误。我测试的情况是这样的。
我将so文件放在[libs / yourCpuModel(armeabi-v7a)/]目录中将是此错误。
我将so文件放在[src / jniLibs / youtCpuModel(armeabi-v7a)/]目录中。
但是我不会将so文件放在[src / main / jniLibs / yourCpuModel(armeabi-v7a)/]目录中。
我不知道为什么。也许你可以尝试一下。