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

如何在Capacitor 2中构建适配Android Target SDK 31的应用?

Capacitor 2适配Android Target SDK 31解决Google Play上传报错方案
  • 覆盖Capacitor核心组件的Manifest属性
    在应用的AndroidManifest.xml中,直接声明Capacitor自带的核心组件(如MainActivity、SplashActivity),显式添加android:exported属性并保留原有意图过滤器,以此覆盖Capacitor官方aar包中的配置,确保合并后的Manifest里这些组件符合要求。示例代码:

    <activity
        android:name="com.getcapacitor.MainActivity"
        android:exported="true"
        android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|smallestScreenSize|screenLayout|uiMode"
        android:launchMode="singleTask"
        android:theme="@style/AppTheme.NoActionBarLaunch">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    
    <activity
        android:name="com.getcapacitor.SplashActivity"
        android:exported="true"
        android:theme="@style/AppTheme.Launch">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    
  • 排查并修复第三方插件的Manifest问题
    部分Capacitor插件的Android端会注册带意图过滤器的组件(如广播接收器、服务),同样可能缺失android:exported属性,需按以下步骤处理:

    1. 执行./gradlew app:mergeDebugAndroidManifest(Release版本替换为mergeReleaseAndroidManifest)生成合并后的Manifest文件,路径一般为app/build/intermediates/merged_manifests/debug/AndroidManifest.xml
    2. 搜索文件中所有带有<intent-filter>但未设置android:exported的组件
    3. 在应用的AndroidManifest.xml中重新声明这些组件,根据组件功能需求添加android:exported="true"或false(启动类必须设为true)
  • 验证合并后的Manifest配置
    打开生成的合并Manifest文件,逐一检查所有带意图过滤器的组件,确认均已设置android:exported属性,无遗漏项。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 20:54:24