
问题根源在于 fat-aar 插件会导致 ViewModelStoreOwner 实现方式冲突。具体原因当 useEmbedtrue 时使用 embed 依赖fat-aar 会解包并合并所有依赖的类。这时候如果 BaseApp 内部直接持有 ViewModelStore实例会产生问题多份 ViewModelStore 实例问题当作为 AAR 嵌入到宿主应用时如果宿主也使用 ViewModelStore两边各有一份独立的 store生命周期冲突Application 是宿主控制的而 ViewModelStore 是进程级别共享的为什么需要改两个类BaseApp当作为 AAR 嵌入时不能在内部创建ViewModelStore改为接受构造器参数注入由外部宿主控制实例GlobalViewModelStore独立的单例对象不受 Application 控制保持自己的私有实例确保全局唯一性根本原因问题是 embed 带来的旧版 lifecycle 只有 getViewModelStore() 方法没有 viewModelStore 属性。需要统一使用方法实现。fat-aar 的解包合并机制当使用 embed 时所有 transitive 依赖的类会被解压并打包到统一的 AAR 中这导致类冲突实例共享问题需要外部传入依赖如 ViewModelStore