You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Apache Commons FTP在安卓release版APK中无法使用问题求助

解决方案

1. 补充明文网络流量许可

安卓9(API 28)及以上系统默认禁止release版应用使用明文FTP/HTTP流量,debug构建默认临时放开该限制,这是该问题的最高概率诱因。
解决方法:在AndroidManifest.xml的<application>标签中添加属性:

android:usesCleartextTraffic="true"

如果项目单独配置了network_security_config.xml,需要额外在配置文件中添加FTP服务器的IP/域名明文访问规则。

2. 添加commons-net库的混淆保留规则

即使关闭了minify功能,部分gradle构建插件在release打包阶段仍会裁剪未被显式引用的第三方库类,当前的混淆规则未覆盖commons-net库,需要在proguard-rules.pro中添加:

-keep class org.apache.commons.net.** { *; }
-dontwarn org.apache.commons.net.**

3. 显式开启FTP被动模式

debug和release构建的默认网络超时、连接策略存在差异,FTP上传逻辑未显式开启被动模式时,release构建的连接请求大概率会被服务器防火墙拦截,需要在FTP连接逻辑中补充配置:

// 完成FTP服务器登录后、执行文件上传前调用
ftpClient.enterLocalPassiveMode();

4. 检查存储权限适配

如果应用targetSdkVersion >= 33,release版首次安装时默认没有本地文件读取权限,需要确认已经动态申请了对应文件的读取权限(READ_MEDIA_* 或 MANAGE_EXTERNAL_STORAGE),避免因读取不到本地文件导致上传失败。

内容的提问来源于stack exchange,提问作者buzzcarla

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 03:57:05