Android11编译第九弹:openvpn调优
openvpn是一个开源项目,提供vpn 服务功能,可以自己搭建VPN服务器。
https://github.com/schwabe/ics-openvpn.git
集成这个客户端以后,出现一些问题:
问题一.VPN KEY下发失败
问题二:VPN KEY下发成功,但是VPN 连接失败;
因此,需要对客户端源码项目进行调优。
一、openvpn源码下载
同步项目到本地
1.1 克隆项目
git clone?https://github.com/schwabe/ics-openvpn.git
?1.2 配置APP签名
因为需要作为一个内置应用,采用系统签名。
二、配置编译环境
2.1 安装编译工具
安卓项目编译工具,包括Android Studio, Git,NDK, cmake等。
安卓完成需要配置SDK和NDK的环境变量。
2.2 下载Swig 工具
openvpn 编译必须swig工具,
去官网下载
https://www.swig.org/download.html
下载后解压缩,然后配置环境变量。
验证swig是否安装成功,打开DOS,然后输入swig -help
2.3 编译项目
gradle部分,main--》Task->build-->assembleDebug,点击编译
问题一:编译报错,ndk只支持3位的,没有支持64位
[CXX5202] This app only has 32-bit [armeabi-v7a] native libraries. Beginning August 1, 2019 Google Play store requires that all apps that include native libraries must provide 64-bit versions. For more information, visit https://g.co/64-bit-requirement
原因:主模块main只编译了32位的指令集。
ics-openvpn/main/build.gradle.kts
splits {
abi {
isEnable = true
reset()
// include("x86", "x86_64", "armeabi-v7a", "arm64-v8a")
include("armeabi-v7a")
isUniversalApk = true
}
}
可以清晰的看到,因为abi只定义了armeabi-v7a。
添加arm64-v8a,增加64位版本。
include("armeabi-v7a", "arm64-v8a")
?问题二:再次编译assembleDebug,报错swig指令处理失败
FAILURE: Build completed with 6 failures.
1: Task failed with an exception.
-----------
* What went wrong:
Execution failed for task ':main:generateOpenVPN3SwigskeletonOvpn23Debug'.
> A problem occurred starting process 'command 'swig''
C/C++: ? Could NOT find SWIG (missing: SWIG_EXECUTABLE SWIG_DIR) (Required is at
C/C++: ? least version "3.0")
因为WINDOWS环境下,没有找到SWIG相关
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!