Android studio 新建一个空白工程提示:Conflict with dependency 'com.android.support:support-annotations' in proj

解决Android Studio依赖冲突
本文介绍了解决Android Studio中出现的依赖冲突问题,具体为'com.android.support:support-annotations'的不同版本引起的错误。通过调整项目的build.gradle文件中的依赖版本到一致的27.1.1,成功解决了冲突。

Android studio 新建一个空白工程提示:Conflict with dependency 'com.android.support:support-annotations' in project ':app'.

 

 

Error:Execution failed for task ':app:preDebugAndroidTestBuild'.

> Conflict with dependency 'com.android.support:support-annotations' in project ':app'. Resolved versions for app (26.1.0)

and test app (27.1.1)

differ. See https://d.android.com/r/tools/test-apk-dependency-conflicts.html for details.

 

大致意思: om.android.support:support-annotations这个包冲突, 项目里引用的是 (26.1.0) 然而测试的是 (27.1.1) 的,所以导致冲突, 每个支持注释版本可能依赖于不同的方法,所以使用起来要非常小心。

 

   build.gradle 文件的 dependenies 修改为27.1.1  后编译通过。

 

 

 

<think>好的,用户现在遇到了两个问题:ARouter的“No module name”错误和com.android.support:appcompat-v7:28.0.0的红色警告。需要分别分析原因并给出解决方案。 首先,针对ARouter的“No module name”错误,根据之前的回答,这通常是因为模块未正确配置AROUTER_MODULE_NAME。需要检查每个模块的build.gradle文件,确保在defaultConfig中正确添加了annotationProcessorOptions,并且参数名称是AROUTER_MODULE_NAME而不是moduleName。另外,要确认所有使用@Route注解的模块都添加了annotationProcessor依赖,并且版本一致。可能用户虽然配置了,但可能有拼写错误或者遗漏了某些子模块。此外,检查Gradle日志可以帮助确认具体哪个模块未正确配置。用户可能需要清理项目并重新构建,或者检查是否有模块使用了动态版本号导致版本不一致。 接下来是com.android.support:appcompat-v7:28.0.0的红色警告。这通常是因为Android Support库已经过时,被AndroidX替代。Google自2018年起推荐迁移到AndroidX,所以使用旧版支持库会有警告。解决方法是迁移到AndroidX,或者如果暂时无法迁移,可以禁止Jetifier并明确指定支持库版本。另外,可能与其他依赖库存在版本冲突,需要统一所有模块中的支持库版本。用户可能需要检查依赖树,确认是否有其他库引用了不同版本的appcompat-v7,导致版本不匹配。 需要结合用户提供的引用内容。例如,引用[1]提到动态版本号(如com.android.support:support-v4:+)会导致问题,改为固定版本号解决。这可能同样适用于appcompat-v7,用户可能使用了动态版本,应改为固定版本。引用[2]和[3]提到的Manifest合并错误和构建异常,可能与依赖冲突或配置错误有关,但当前用户的问题可能更多是版本不匹配或未迁移到AndroidX。引用[5]提到ButterKnife的使用,但可能与当前问题无关。 用户可能在多个模块中混合使用了支持库和AndroidX,导致版本冲突。需要统一所有模块的依赖版本,或者完成迁移。此外,ARouter的配置错误可能与Gradle插件版本或注解处理器配置有关,尤其是Kotlin项目需要同时使用kapt和annotationProcessor。 总结解决方案步骤:对于ARouter,检查所有模块的AROUTER_MODULE_NAME配置,确保正确且版本一致;对于appcompat警告,迁移到AndroidX或统一支持库版本,解决冲突。</think>### ARouter::Compiler "No module name" 与 Support库警告的联合解决方案 --- #### 一、问题根本原因联合分析 1. **ARouter模块身份缺失** - 未在含`@Route`注解的模块中声明`AROUTER_MODULE_NAME`参数[^1][^4] - 注解处理器依赖缺失或版本不一致(特别是多模块项目)[^3] 2. **Support库红色警告** - `com.android.support:appcompat-v7:28.0.0`是AndroidX迁移前的最后支持版本 -Android Gradle Plugin 3.2.0+的版本策略冲突[^1] - 存在其他依赖项引用不同版本的支持库(如`support-v4`) --- #### 二、分步解决方案 **Step 1. ARouter配置修正** ```groovy // 所有含@Route的模块build.gradle android { defaultConfig { javaCompileOptions { annotationProcessorOptions { arguments = [ AROUTER_MODULE_NAME : project.name ] // 注意全大写 } } } } dependencies { // 确保所有模块使用相同版本(最新稳定版示例) implementation 'com.alibaba:arouter-api:1.5.2' annotationProcessor 'com.alibaba:arouter-compiler:1.5.2' kapt 'com.alibaba:arouter-compiler:1.5.2' // Kotlin项目需添加 } ``` *验证方法*:检查`build/generated/source`路径下是否生成`ARouter$$Root$$模块名`类[^1] **Step 2. Support库警告处理** *方案A:迁移至AndroidX(推荐)* 1. 在`gradle.properties`添加: ```properties android.useAndroidX=true android.enableJetifier=true ``` 2. 修改依赖声明: ```groovy implementation 'androidx.appcompat:appcompat:1.3.1' // 替代原support库 ``` *方案B:兼容旧版支持库* ```groovy // 主模块build.gradle configurations.all { resolutionStrategy { force 'com.android.support:appcompat-v7:28.0.0' force 'com.android.support:support-v4:28.0.0' // 统一其他支持库版本[^1] } } ``` --- #### 三、关键配置验证点 | 检查项 | 正确配置 | 错误配置示例 | |--------|----------|-------------| | ARouter参数命名 | `AROUTER_MODULE_NAME` | `moduleName`[^5] | | 注解处理器位置 | 每个模块独立添加 | 仅在app模块配置 | | 支持库版本声明 | 明确版本号`28.0.0` | 动态版本`+`[^1] | | Kotlin支持 | `kapt`与`annotationProcessor`并存 | 仅用其中一种[^2] | --- #### 四、典型错误日志分析 ```log // ARouter编译错误特征 ARouter::Compiler >>> No module name // Support库冲突特征 Conflict with dependency 'com.android.support:support-annotations' ``` --- #### 五、高级调试技巧 1. **依赖树检查** ```bash ./gradlew :app:dependencies --configuration implementation > deps.txt ``` 搜索`appcompat`和`arouter`确认版本统一 2. **Gradle缓存清理** ```bash rm -rf ~/.gradle/caches/transforms-*/arouter* ./gradlew cleanBuildCache ``` 3. **Manifest合并检查** 在`AndroidManifest.xml`添加: ```xml <application tools:replace="android:label" tools:ignore="UnusedAttribute"> ``` --- **最终验证标准**: 1. 所有模块生成`ARouter$$Root$$*`类文件 2. `appcompat`相关警告消失且编译通过 3. Gradle日志显示统一版本信息: ```bash +--- com.alibaba:arouter-api:1.5.2 +--- androidx.appcompat:appcompat:1.3.1 ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值