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

升级SDK至31后构建失败:processReleaseMainManifest任务报错

解决Android SDK 31升级后Manifest构建错误

问题原因

升级到Android SDK 31(对应Android 12及更高版本)后,谷歌强制要求:所有包含<intent-filter>的组件(Activity、Service、BroadcastReceiver等)必须显式声明android:exported属性,取值为true或false。未设置该属性会触发Manifest合并错误。

解决步骤

  1. 打开报错的AndroidManifest.xml文件(路径:~/platforms/android/app/src/main/AndroidManifest.xml)
  2. 遍历文件中所有包含<intent-filter>的组件,找出未设置android:exported的条目
  3. 根据组件的访问需求设置属性值:
    • 若组件需要接收外部应用的Intent(比如启动应用的主Activity),设置android:exported="true"
    • 若组件仅用于应用内部,不需要外部访问,设置android:exported="false"

示例修改

比如主Activity的原始代码:

<activity
    android:name=".MainActivity">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

修改后添加android:exported属性:

<activity
    android:name=".MainActivity"
    android:exported="true">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

第三方库组件的处理

如果错误是由依赖的第三方库组件未设置android:exported导致的,可在自己的AndroidManifest.xml中覆盖该组件的属性,示例:

<activity
    android:name="com.example.library.ExternalActivity"
    android:exported="false"
    tools:node="merge" />

tools:node="merge"用于确保Manifest合并时保留你设置的属性值。

完成上述修改后,重新构建项目即可解决该错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 13:45:48