合并代码后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
相关产品推荐
相关产品推荐

