Android Gradle依赖提示deps未知属性报错如何处理?
deps含义及报错解决方案
什么是deps
deps是项目自定义的Gradle依赖集中管理对象,属于Google官方安卓示例项目常用的依赖管理规范。开发者会将所有依赖的包名、版本号统一抽离到单独的Gradle配置文件中,封装为deps对象下的分层属性,避免多模块开发时重复声明版本号,也方便全项目统一升级依赖版本。
报错原因
你本地项目没有提前定义deps对象,也没有引入存放deps配置的文件,因此Gradle在解析依赖时无法识别该属性,就抛出了找不到deps属性的错误。
解决方案
你可以任选以下两种方案处理:
方案1:直接替换为完整依赖声明(最简单)
将所有deps.xxx格式的依赖,替换为对应的完整Maven坐标即可,你可以从下载的NavigationAdvancedSample项目中找到定义deps的配置文件,复制对应的完整依赖写法到你的项目中即可,示例替换逻辑:
原写法:
implementation deps.kotlin.stdlib
替换为:
implementation "org.jetbrains.kotlin:kotlin-stdlib:1.8.22"
所有deps开头的依赖都按照该规则替换完成后,同步Gradle即可解决报错。
方案2:在自己的项目中配置deps依赖集中管理
如果你也想使用这种统一管理依赖的方式,可以按照以下步骤配置:
- 在项目根目录新建
dependencies.gradle文件,填入以下格式的配置,将所有用到的依赖补全:
ext { deps = [ kotlin: [ stdlib: "org.jetbrains.kotlin:kotlin-stdlib:1.8.22" ], support: [ app_compat: "androidx.appcompat:appcompat:1.6.1", design: "com.google.android.material:material:1.9.0", core_ktx: "androidx.core:core-ktx:1.10.1" ], constraint_layout: "androidx.constraintlayout:constraintlayout:2.1.4", arch_core: [ runtime: "androidx.arch.core:core-runtime:2.2.0", testing: "androidx.arch.core:core-testing:2.2.0" ], navigation: [ runtime_ktx: "androidx.navigation:navigation-runtime-ktx:2.5.3", fragment_ktx: "androidx.navigation:navigation-fragment-ktx:2.5.3", ui_ktx: "androidx.navigation:navigation-ui-ktx:2.5.3" ], atsl: [ runner: "androidx.test:runner:1.5.2", rules: "androidx.test:rules:1.5.0" ], room: [ testing: "androidx.room:room-testing:2.5.2" ], espresso: [ core: "androidx.test.espresso:espresso-core:3.5.1", contrib: "androidx.test.espresso:espresso-contrib:3.5.1", intents: "androidx.test.espresso:espresso-intents:3.5.1" ] ] }
- 在项目根目录的
build.gradle文件顶部添加引入语句:
apply from: "dependencies.gradle"
- 同步Gradle即可,之后你的项目也可以直接使用
deps.xxx格式声明依赖。
内容的提问来源于stack exchange,提问作者RodParedes
相关产品推荐
相关产品推荐

