Android Architecture Components导航组件安装失败,无法找到safe-args插件
我来帮你排查并解决这个Gradle同步错误,主要问题出在版本号拼写和架构依赖不匹配上,一步步来修复:
1. 先修复版本号的低级拼写错误
看你Project级build.gradle里的这行代码:
classpath "androidx.navigation:safe-args-gradle-plugin:1.0.0-alph a01"
版本号里多了一个空格,先改成正确的格式:
classpath "androidx.navigation:safe-args-gradle-plugin:1.0.0-alpha01"
不过这只是第一步,还有架构依赖不兼容的问题需要处理。
2. 统一Navigation组件的架构依赖
你当前Module级依赖用的是旧的android.arch.navigation,但插件却引用了androidx.navigation,两者属于不同的架构体系,必然会出问题。这里给你两个解决方案:
选项一:继续使用旧版android.arch架构(不推荐)
如果暂时不想迁移到AndroidX,把插件依赖也改成android.arch体系的:
// Project级build.gradle里修改 classpath "android.arch.navigation:navigation-safe-args-gradle-plugin:1.0.0-alpha01"
同时Module级的插件引用也要对应修改:
// Module级build.gradle末尾修改 apply plugin: 'android.arch.navigation.safeargs'
选项二:迁移到AndroidX(推荐方案)
AndroidX是Google官方主推的新架构,旧的android.arch已经被弃用,建议直接迁移:
- 先在项目根目录的
gradle.properties里开启AndroidX支持:
android.useAndroidX=true android.enableJetifier=true
- 更新Project级的插件依赖到最新稳定版(比如2.7.5,你可以根据官方文档选择最新稳定版):
classpath "androidx.navigation:navigation-safe-args-gradle-plugin:2.7.5"
- 把Module级的Navigation依赖全部替换成AndroidX版本:
def nav_version = "2.7.5" implementation "androidx.navigation:navigation-fragment:$nav_version" implementation "androidx.navigation:navigation-ui:$nav_version" androidTestImplementation "androidx.navigation:navigation-testing:$nav_version"
- 保持Module级的插件引用不变:
apply plugin: 'androidx.navigation.safeargs'
3. 最后同步验证
修改完所有配置后,点击Android Studio右上角的「Sync Now」按钮,等待Gradle同步完成,这个找不到插件的错误应该就会消失了。
另外提醒下:尽量使用稳定版的Navigation组件,alpha版本通常存在较多未修复的bug,生产环境不建议使用。
内容的提问来源于stack exchange,提问作者Dhiru
相关产品推荐
相关产品推荐

