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

如何让Ionic应用适配Android 12(Snow Cone)系统

Ionic Android12适配构建报错解决方案

根因说明

你手动修改的platforms目录下的清单文件会被构建流程自动覆盖,且仅给MainActivity加android:exported属性不全面,所有带intent filter的四大组件(Activity、Service、BroadcastReceiver)都需要显式声明该属性,包括第三方Cordova插件生成的组件。

具体解决步骤

  • 第一步:升级cordova-android到适配Android12的稳定版本
    你当前使用的cordova-android@10.0.0对Android12的适配存在缺陷,先卸载旧安卓平台再安装高版本:
    cordova platform rm android
    cordova platform add android@11.0.0
    
    该版本默认会自动给核心组件添加android:exported属性,同时兼容TargetSdk31/32。
  • 第二步:在config.xml中全局配置组件exported属性
    不要手动修改platforms下的文件,直接在config.xml的<platform name="android">节点下添加如下配置,构建时会自动注入到清单文件中:
    <!-- 配置所有Activity的exported属性,主Activity设为true -->
    <edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application/activity">
        <activity android:exported="true" />
    </edit-config>
    <!-- 配置不需要对外暴露的Service、Receiver的exported属性,有特殊需求的组件单独指定即可 -->
    <edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application/service">
        <service android:exported="false" />
    </edit-config>
    <edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application/receiver">
        <receiver android:exported="false" />
    </edit-config>
    <!-- 配套配置Gradle和构建工具版本,解决版本兼容报错 -->
    <preference name="android-gradleVersion" value="7.1.1" />
    <preference name="android-buildToolsVersion" value="31.0.0" />
    
  • 第三步:升级第三方插件到适配Android12的版本
    报错中提到的FCMPlugin需要升级到最新版本,旧版本插件未适配Android12的清单文件规则,也未兼容高版本Gradle。
  • 第四步:清理缓存重新构建
    # 清理安卓构建缓存
    cordova clean android
    # 删掉本地依赖锁文件和依赖目录后重新安装依赖
    rm -rf node_modules package-lock.json
    npm install
    # 重新构建
    cordova build android
    

注意事项

所有配置中的引号必须使用英文半角引号,不要使用中文引号,否则会出现配置识别失败的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 15:36:03