java - 命名空间“classloader-namespace”无法访问库
问题描述
我想在我的 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");
}
解决方案
从 Nougat 开始,Android 阻止了来自系统库的私有符号的运行时链接(请参阅Android 开发人员中的这篇博文)。你有两个选择:
- 将这些库包含在您的 APK 中,这样您就无需在
/system/lib/
; 或者 - 修改您的 Android ROM,以便将这些库视为公共库。这可以通过将这些库添加到
/system/etc/public.libraries.txt
.
推荐阅读
- python - 带有错误消息的 Python 中的 Project Euler 问题 2
- xml - 如何在 Nuxt.js 中创建 Google 新闻提要 (xml)?
- postgresql - 如何删除postgreSQL中相差小于10秒的重复数据
- c++ - Boost状态图:尝试实现正交状态的内部初始子状态但编译失败
- ios - React native 0.63.4 ios 14 无静态图像
- azure-functions - azure functionapp 在输出 blob 绑定上设置元数据
- vhdl - 如何在VHDL中的每个时钟周期设置一个标志
- regex - 正则表达式 - 仅在字符串的一部分中更改逗号
- python - 从类传递函数而不启动它python
- php - ACF“acf/save_post”挂钩中的 WooCommerce WC_Product set_category_ids() 方法存在问题