将项目作为模块导入失败:Gradle依赖解析错误及无效方案
解决Android模块依赖报错:Could not resolve project :library
问题出在哪?
看错误日志里的核心提示就懂了:
所需com.android.build.gradle.internal.dependency.AndroidTypeAttr 'Aar',找到不兼容值'Apk'
你的:library模块被错误配置成了Android应用模块(application),而不是我们需要的库模块(library)。应用模块编译后输出的是APK安装包,库模块才会输出可供其他模块依赖的AAR包——这就是sample模块死活找不到正确依赖的根本原因。
怎么修复?
按下面几步来操作:
- 打开
:library模块根目录下的build.gradle(如果用Kotlin DSL就是build.gradle.kts) - 找到
plugins代码块,把com.android.application替换成com.android.library:
Groovy版本示例:
Kotlin DSL版本示例:plugins { id 'com.android.library' // 替换原来的com.android.application // 其他插件比如kotlin-android可以保留 }plugins { id("com.android.library") // 替换原来的com.android.application // 其他插件正常保留 } - 检查
android.defaultConfig里有没有applicationId这一行,有的话直接删掉——库模块不需要这个配置 - 最后点击Android Studio右上角的"Sync Project with Gradle Files"同步项目
为啥之前的方法不管用?
你试的implementation project(path: ':library', configuration: 'default')只是强制用了模块的默认配置,但:library本质还是应用模块,它的默认配置输出的是APK,不是可被依赖的AAR包。所以同步虽然能过,但sample模块根本找不到库中的类——APK可不是给其他模块依赖用的格式啊!
内容的提问来源于stack exchange,提问作者Eliran Goshen
相关产品推荐
相关产品推荐

