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

引入Navigation Components后开启minifyEnabled报FragmentContainerView inflate错误

排查方向
  • 混淆规则校验

    该问题仅在开启minifyEnable后复现,优先检查混淆规则是否覆盖Navigation组件要求:

    1. 在proguard-rules.pro中添加官方推荐的混淆规则:
    # Navigation 组件基础规则
    -keep class * extends androidx.navigation.Navigator { *; }
    -keepnames class * implements android.os.Parcelable
    -keepclassmembers class * implements android.os.Parcelable {
        public static final ** CREATOR;
    }
    # 若使用Safe Args插件需额外添加
    -keepnames class * extends androidx.navigation.NavArgs
    -keepclassmembers class * extends androidx.navigation.NavArgs { <init>(...); }
    
    1. 检查业务层自定义Fragment是否被混淆重命名导致Navigation无法反射实例化,可临时给对应Fragment添加@Keep注解验证,或添加规则保持所有导航用到的Fragment类不被混淆。
    2. 临时添加规则-keep class androidx.navigation.fragment.NavHostFragment { *; }验证是否NavHostFragment类被混淆导致加载失败。
  • 依赖一致性校验

    1. 检查所有Navigation相关依赖(navigation-fragment-ktx、navigation-ui-ktx、Safe Args插件)的版本号完全一致,避免跨版本兼容问题。
    2. 执行./gradlew :app:dependencies查看依赖树,排查是否有其他三方依赖间接引入了低版本的Fragment/Navigation包,排除版本冲突。
  • 资源裁剪校验

    若同时开启了shrinkResources true或使用了第三方资源混淆工具(如AndResGuard),检查导航图相关资源是否被误裁剪:

    1. 临时关闭资源混淆验证问题是否消失。
    2. 若确认是资源裁剪导致,在res/raw/keep.xml中添加规则保留导航图资源。
  • 布局配置二次校验

    检查布局中FragmentContainerView的配置是否存在混淆后才会触发的问题:

    1. 确认android:name属性值为androidx.navigation.fragment.NavHostFragment,无拼写错误。
    2. 确认app:navGraph属性指向的导航图资源正确,无资源id错位问题。

内容的提问来源于stack exchange,提问作者William Hu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 17:54:06