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

AOSP 13:androidx-startup重复引发Manifest合并失败问题

AOSP 13 静态库引入导致Manifest合并冲突解决办法

问题现象

编译厂商系统应用时触发Manifest合并错误:

manifest/AndroidManifest.xml.fixed:42:13-70 Error:
        Attribute provider#androidx.startup.InitializationProvider@authorities value=(androidx.lifecycle.extensions.androidx-startup) from AndroidManifest.xml:42:13-70
        is also present at AndroidManifest.xml:34:13-70 value=(androidx.appcompat.androidx-startup).
        Suggestion: add 'tools:replace="android:authorities"' to <provider> element at AndroidManifest.xml.fixed:40:9-51:20 to override.

其中androidx.lifecycle.extensions和androidx.appcompat均为静态库引入,相同代码在AOSP 12可正常编译。

原因分析

AOSP 13 收紧了Manifest合并的冲突检测规则,静态库androidx.lifecycle.extensions和androidx.appcompat各自声明了androidx.startup.InitializationProvider,且指定了不同的authorities值,触发冲突;AOSP 12 合并规则相对宽松,未对这类冲突做强制校验。

解决方案

方案1:按提示添加tools:replace属性

在应用自身的AndroidManifest.xml中找到对应的<provider>节点(对应androidx.startup.InitializationProvider),添加tools:replace="android:authorities"属性,同时确保根<manifest>标签已声明tools命名空间:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools">

    <!-- ...其他内容... -->

    <provider
        android:name="androidx.startup.InitializationProvider"
        android:authorities="你的应用包名.androidx-startup"
        tools:replace="android:authorities"
        android:exported="false" />

方案2:禁用不必要的Startup初始化

如果不需要其中一个库的Startup初始化逻辑,可在Manifest中移除对应元数据:

<provider
    android:name="androidx.startup.InitializationProvider"
    android:authorities="${applicationId}.androidx-startup"
    android:exported="false"
    tools:node="merge">
    <!-- 移除lifecycle的ProcessLifecycleInitializer,根据需求选择移除目标 -->
    <meta-data
        android:name="androidx.lifecycle.ProcessLifecycleInitializer"
        tools:node="remove" />
</provider>

方案3:统一authorities值

在应用Manifest中显式声明androidx.startup.InitializationProvider,指定统一的authorities值(建议用${applicationId}.androidx-startup),覆盖静态库中的声明:

<provider
    android:name="androidx.startup.InitializationProvider"
    android:authorities="${applicationId}.androidx-startup"
    android:exported="false"
    tools:node="merge" />

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 18:50:33