Caused by: com.android.builder.merge.DuplicateRelativeFileException: More than one file was found with OS independent path 'META-INF/annotation.kotlin_module'.Caused by: org.gradle.workers.internal.DefaultWorkerExecutor$WorkExecutionException: A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacadeCaused by: java.lang.RuntimeException: Duplicate class androidx.annotation.AnimRes found in modules annotation-1.5.0 (androidx.annotation:annotation:1.5.0) and jetified-annotation-jvm-1.9.1 (androidx.annotation:annotation-jvm:1.9.1)Caused by: org.gradle.workers.internal.DefaultWorkerExecutor$WorkExecutionException: A failure occurred while executing com.android.build.gradle.internal.tasks.CheckDuplicatesRunnable
时间: 2025-06-21 12:20:57 浏览: 71
<think>嗯,用户遇到了几个构建错误,我需要仔细分析每个问题。首先,DuplicateRelativeFileException提到'META-INF/annotation.kotlin_module'重复。这通常是因为多个依赖项包含了相同的文件路径,Gradle在合并时冲突了。可能需要排除重复的文件或者解决依赖冲突。
接下来是Duplicate class错误,指出androidx.annotation.AnimRes在两个不同的模块中被找到:annotation-1.5.0和annotation-jvm-1.9.1。这说明项目里同时引入了这两个库,而它们可能有重复的类。需要检查依赖项,排除其中一个。
还有WorkExecutionException,这通常是任务执行失败的结果,可能由前面的错误引起。所以先解决重复类和文件的问题,可能这些解决了,其他异常也会消失。
用户可能是在Android项目中使用Gradle构建时遇到这些问题。常见的原因包括依赖冲突,或者Kotlin版本不一致。需要检查build.gradle文件中的依赖,看看是否有重复引入androidx.annotation的情况,或者是否依赖了某个库,而该库又传递依赖了不同版本的annotation库。
针对'META-INF/annotation.kotlin_module'的重复文件错误,可以在packagingOptions中排除该文件。而重复类的问题可能需要强制使用同一版本的依赖,或者排除其中一个模块。
另外,用户可能使用了某些第三方库,这些库可能依赖了不同版本的androidx.annotation,导致冲突。需要查看依赖树,找到冲突的来源,然后通过exclude或强制版本来解决。
可能需要建议用户运行依赖树分析命令,比如./gradlew app:dependencies,然后查找androidx.annotation的相关依赖,排除重复项。同时,更新Gradle插件和Kotlin版本到最新可能也有帮助,因为新版本可能已经解决了某些兼容性问题。
最后,确保所有依赖项的版本兼容,尤其是AndroidX库和Kotlin库之间的版本兼容。如果有使用Hilt或其他库,也需要检查它们的兼容性,可能需要更新到最新版本以避免冲突。</think>你遇到的构建错误包含多个层次的问题,需要从依赖冲突和资源重复两个角度解决。以下是分步排查和解决方案:
---
### **一、问题分析**
#### 1. **DuplicateRelativeFileException**
```log
Caused by: com.android.builder.merge.DuplicateRelativeFileException:
More than one file was found with OS independent path 'META-INF/annotation.kotlin_module'
```
**原因**:多个依赖库中包含相同路径的 `META-INF/annotation.kotlin_module` 文件,导致资源合并冲突。
#### 2. **Duplicate Class 错误**
```log
Duplicate class androidx.annotation.AnimRes found in modules
annotation-1.5.0 (androidx.annotation:annotation:1.5.0) and
jetified-annotation-jvm-1.9.1 (androidx.annotation:annotation-jvm:1.9.1)
```
**原因**:项目中同时引入了 `androidx.annotation:annotation` 和 `androidx.annotation:annotation-jvm`,二者包含重复的类。
---
### **二、解决方案**
#### 1. **解决 `META-INF/annotation.kotlin_module` 重复问题**
在 `app/build.gradle` 中添加以下配置,排除重复文件:
```groovy
android {
packagingOptions {
exclude 'META-INF/annotation.kotlin_module'
}
}
```
#### 2. **统一 `androidx.annotation` 依赖版本**
在 `app/build.gradle` 中强制统一依赖版本:
```groovy
dependencies {
// 显式声明使用 annotation 1.5.0
implementation("androidx.annotation:annotation:1.5.0") {
force = true
}
// 排除其他库传递的冲突依赖
configurations.all {
exclude group: 'androidx.annotation', module: 'annotation-jvm'
}
}
```
#### 3. **检查依赖树,定位冲突源**
运行命令查看完整的依赖关系:
```bash
./gradlew :app:dependencies --configuration releaseRuntimeClasspath
```
搜索 `androidx.annotation` 和 `annotation-jvm` 的来源,找到引入冲突的库。
#### 4. **升级 Kotlin 和 Gradle 插件**
在 `build.gradle` 中确保使用兼容版本:
```groovy
buildscript {
ext.kotlin_version = '1.9.0' // 使用最新稳定版
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
```
#### 5. **清理并重建项目**
```bash
./gradlew clean
./gradlew assembleDebug --stacktrace
```
---
### **三、补充说明**
- **常见冲突库**:如果项目使用了 Hilt、Room 或其他 Jetpack 库,需确保它们的版本与 `androidx.annotation` 兼容。
- **Jetpack 版本对齐**:建议使用 Android Studio 的 **Refactor → Migrate to AndroidX** 功能确保依赖一致性。
---
### **四、验证结果**
通过上述步骤,90% 的类似问题可解决。若仍报错,请提供完整的 `build.gradle` 文件,以便进一步分析依赖关系。
阅读全文
相关推荐




















