You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

合并代码后Android Studio报IllegalArgumentException: part '' is keyword错误

解决导航Safe Args生成时的IllegalArgumentException: part '' is keyword错误

这个错误是Android Navigation组件的Safe Args插件在生成代码时触发的,从栈追踪能看到是JavaPoet库在处理空的类名片段时抛出的异常,核心问题出在导航图的参数配置上。

错误信息(中文翻译)

IllegalArgumentException: 片段''是关键字

完整栈追踪(中文翻译):

Caused by: java.lang.IllegalArgumentException: 片段''是关键字
    at com.squareup.javapoet.Util.checkArgument(Util.java:64)
    at com.squareup.javapoet.ClassName.<init>(ClassName.java:49)
    at com.squareup.javapoet.ClassName.<init>(ClassName.java:43)
    at com.squareup.javapoet.ClassName.get(ClassName.java:201)
    at androidx.navigation.safe.args.generator.java.JavaTypesKt.typeName(JavaTypes.kt:191)
    at androidx.navigation.safe.args.generator.java.ClassWithArgsSpecs.generateParameterSpec(JavaNavWriter.kt:513)
    at androidx.navigation.safe.args.generator.java.ClassWithArgsSpecs.setters(JavaNavWriter.kt:319)
    at androidx.navigation.safe.args.generator.java.JavaNavWriter.generateDirectionsTypeSpec$navigation_safe_args_generator(JavaNavWriter.kt:178)
    at androidx.navigation.safe.args.generator.java.JavaNavWriter.generateDestinationDirectionsTypeSpec(JavaNavWriter.kt:77)
    at androidx.navigation.safe.args.generator.java.JavaNavWriter.generateDirectionsCodeFile(JavaNavWriter.kt:65)
    at androidx.navigation.safe.args.generator.java.JavaNavWriter.generateDirectionsCodeFile(JavaNavWriter.kt:57)
    at androidx.navigation.safe.args.generator.NavSafeArgsGenerator$generate$1.invoke(NavSafeArgsGenerator.kt:66)
    at androidx.navigation.safe.args.generator.NavSafeArgsGenerator$generate$1.invoke(NavSafeArgsGenerator.kt:74)
    at androidx.navigation.safe.args.generator.NavSafeArgsGenerator.generate(NavSafeArgsGenerator.kt:80)
    at androidx.navigation.safeargs.gradle.ArgumentsGenerationTask.generateArgs(ArgumentsGenerationTask.kt:74)
    at androidx.navigation.safeargs.gradle.ArgumentsGenerationTask.doFullTaskAction(ArgumentsGenerationTask.kt:109)
    at androidx.navigation.safeargs.gradle.ArgumentsGenerationTask.taskAction$navigation_safe_args_gradle_plugin(ArgumentsGenerationTask.kt:98)

排查与解决步骤

  • 检查导航图的argument配置:遍历所有res/navigation下的XML文件,重点看<argument>标签:
    • 有没有type属性为空的情况(比如<argument name="data" type="" />)
    • 有没有type格式错误,比如只写了包名没写类名,或者自定义类的全类名拼写错误
    • 跨模块传递自定义Parcelable/Serializable类时,必须写完整的全类名(比如com.example.moduleA.MyModel,不能只写MyModel)
  • 清理并重建项目:点击Android Studio顶部菜单的Build -> Clean Project,完成后再执行Build -> Rebuild Project,清除可能的缓存问题
  • 核对版本兼容性:确保Navigation组件和Safe Args插件的版本完全一致,比如navigation-fragment-ktx和navigation-safe-args-gradle-plugin要用同一个版本号

内容的提问来源于stack exchange,提问作者Josue Gramajo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 07:48:27