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

升级target SDK到30后出现Cannot resolve symbol org.apache.commons.net错误怎么办

问题根因

Android 10(API 29)及更早版本中,部分Apache Commons通用库被纳入系统公共SDK接口白名单,应用无需额外引入依赖即可直接调用。从Android 11(API 30)开始,系统正式移除了这类第三方通用库的白名单支持,同时禁止应用直接访问系统内置的非SDK公开接口,这就是target SDK回退至29运行正常、升级到30后导入失败的核心原因。

解决步骤
  • 首先确认commons-net:commons-net:3.8依赖是声明在主module的build.gradle(而非项目根目录build.gradle)的dependencies代码块中,同步Gradle后依次执行Build > Clean Project、Build > Rebuild Project清除旧构建缓存。
  • 若上述操作仍无法解决,检查build.gradle的dependencies块中是否存在冲突的排除规则,如有类似exclude group: 'commons-net'的配置,直接删除该规则后重新同步Gradle。
  • 在主module的build.gradle的android代码块中添加以下配置,解决包校验、资源冲突问题:
android {
    compileSdk 30

    lintOptions {
        disable 'InvalidPackage'
    }
    packagingOptions {
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/NOTICE.txt'
    }
}
  • 若项目开启了R8/ProGuard混淆,在proguard-rules.pro文件中添加commons-net的保活规则:
-keep class org.apache.commons.net.** { *; }
-dontwarn org.apache.commons.net.**

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 22:45:08