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

升级API至31后构建应用发布版本遇Manifest合并错误求助

解决API 31升级后Manifest合并失败(已配置android:exported仍报错)
  • 排查所有带的组件,包括第三方依赖的
    自己写的Activity、Service、BroadcastReceiver、ContentProvider只要配了,都得加android:exported,但很多时候问题出在第三方库——比如旧版本的推送、统计SDK里的组件没适配API 31。你可以通过两种方式排查:

    • 执行命令:./gradlew app:processDebugManifest --stacktrace,输出里会明确指出哪个组件没加exported
    • 打开Android Studio的Merged Manifest标签(在Manifest编辑页底部),直接查看合并后的完整Manifest,找那些带却没有android:exported属性的组件
  • 确认android:exported的取值正确
    不是随便加个true/false就行,得根据组件用途来:

    • 主Activity(带android.intent.action.MAIN和android.intent.category.LAUNCHER的intent-filter)必须设为android:exported="true",否则应用图标都出不来
    • 仅内部调用的组件(比如私有Service)设为android:exported="false"
      另外检查拼写,别把android:exported写成export或者大小写错了
  • 覆盖第三方库组件的缺失属性
    如果是第三方库的组件没加exported,直接在自己的Manifest里覆盖该组件的属性就行,比如:

    <activity
        android:name="com.thirdparty.sdk.SomeActivity"
        android:exported="false"
        tools:node="merge" />
    

    这里tools:node="merge"是告诉Gradle合并你添加的属性和原组件的属性,避免覆盖其他配置

  • 清理缓存后重新构建
    有时候Gradle缓存会导致Manifest合并逻辑异常,先执行./gradlew clean,然后重启Android Studio,再重新构建项目

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 06:01:04