我最近遇到了完全相同的问题。我使用的是 EasyVPN-Free 的克隆版本。经过仔细检查,我发现大多数这些应用程序都使用相同的方法并使用旧版本的 ics-openvpn 核心。
看起来您还在应用程序中使用旧版本的 ics-openvpn ,该版本与 android 10 不兼容,因为它尝试通过从资产加载 ovpn 二进制文件(而不是使用 JNI lib 来启动进程),这是 Android 10 所禁止的。
要解决此问题,请在类中找到以下方法VPNLaunchHelper.java:
private static String writeMiniVPN(Context context)
Add开头的以下几行
String nativeAPI = NativeUtils.getNativeAPI();
/* Q does not allow executing binaries written in temp directory anymore */
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P)
return new File(context.getApplicationInfo().nativeLibraryDir, "libovpnexec.so").getPath();
现在找到以下行并评论/删除 it:
String nativeAPI = NativeUtils.getNativeAPI();
[Update]
正如 Md. Ikramul Murad 最初建议的那样
Add清单文件中的以下代码:
<application android:extractNativeLibs="true" ... >
Now get libovpnexec.so为您的目标平台并将它们适当地粘贴到jniLibs您的应用程序的文件夹,这应该可以修复您在 android 上的异常。
你可以参考这个EasyVPN-免费 https://github.com/mehroz1/EasyVPN-Free我专门为解决这个问题而制作的叉子。
我希望这能帮助所有其他可能遇到同样问题的人。