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

如何修复Android构建错误:重复条目android/support/v4/app/NavUtils.class

解决Android构建时的重复条目(NavUtils.class)错误

嘿,这个问题我碰到过好多次了,核心就是重复引入了Android Support V4库导致的Jar合并冲突。咱们一步步来解决:

1. 移除手动导入的support-v4本地Jar包

你现在同时通过本地Jar和其他依赖引入了support-v4,首先要砍掉重复的源头:

  • 删除项目里libs/support-v4-19.0.1.jar这个文件
  • 从dependencies配置里删掉这一行:compile files('libs/support-v4-19.0.1.jar')

本地Jar的依赖方式很难管理版本冲突,现在更推荐用Maven中心的标准依赖。

2. 统一使用Maven依赖的support-v4

在dependencies里添加匹配你项目版本的support-v4依赖,比如如果你的compileSdkVersion是28,就写:

compile 'com.android.support:support-v4:28.0.0'

注意版本号要和你的compileSdkVersion保持一致,避免版本不兼容问题。如果你用的是新版Gradle(3.0+),可以把compile换成implementation,效果是一样的。

3. 排查其他依赖是否偷偷引入了support-v4

有些第三方库会默认依赖support-v4,比如你没写完的com.an...开头的库,或者其他依赖。可以用Gradle命令查看完整的依赖树:

# Mac/Linux
./gradlew app:dependencies

# Windows
gradlew.bat app:dependencies

在输出里找compile(或implementation)节点下的support-v4,如果发现某个库也引入了它,就给这个依赖加上排除规则,比如:

compile ('com.example.yourlibrary:xxx:1.0.0') {
    exclude module: 'support-v4'
}

另外提醒下:尽量别用+来指定play-services的版本(比如com.google.android.gms:play-services:+),这种方式会自动拉取最新版本,很容易引发兼容性问题,最好指定具体的稳定版本,比如com.google.android.gms:play-services:12.0.1。

4. 清理缓存并重新构建

做完上面的修改后,先清理旧的构建缓存,再重新打包Release版本:

# Mac/Linux
./gradlew clean
./gradlew assembleRelease

# Windows
gradlew.bat clean
gradlew.bat assembleRelease

这样应该就能解决duplicate entry: android/support/v4/app/NavUtils.class的错误了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:40:17