自定义项目导入V2ray-Android库时libtun2socks.so运行时缺失问题
自建Android项目导入V2ray-Android库后,libtun2socks.so存在于APK但运行时无法找到
我正在为校园项目开发一款基于V2ray协议的VPN应用,使用V2ray-Android库。直接构建该库提供的Demo项目一切正常,但在自建极简项目中按说明导入模块后,运行时出现libtun2socks.so不存在的错误:
Cannot run program "/data/app/com.example.bobvpn5-JTEQwsRle2opKu7bKLubFg==/lib/arm64/libtun2socks.so" (in directory "/data/user/0/com.example.bobvpn5/files"): error=2, No such file or directory
已做的排查:
- 分析APK文件确认
libtun2socks.so实际存在,但运行时无法被加载。用以下调试代码验证:
File file = new File(getApplicationInfo().nativeLibraryDir, "libtun2socks.so"); if (file.exists()) { Log.d("!!!MainActivity", "libtun2socks.so exists at " + file.getAbsolutePath()); } else { Log.e("!!!MainActivity", "libtun2socks.so does NOT exist"); }
测试结果:Demo项目日志显示文件存在,自建项目显示文件不存在。
- 自建项目存在链接器错误,Demo项目无此问题。
- 怀疑Gradle/AGP版本差异(我的版本高于Demo),但反复检查应用级、项目级及V2ray模块的Gradle配置(包括
jniSrcDirs等)后,仍无法定位问题。 - 测试环境:自建项目为极简无干扰代码,
.so文件与Demo完全一致,在同一架构设备上测试。
我可以提供项目文件以寻求进一步帮助。
内容的提问来源于stack exchange,提问作者bobycx1
相关产品推荐
相关产品推荐

