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

Android Studio运行Kotlin脚本出现Manifest合并失败报错如何解决

解决方案

报错根因

  • 报错核心为Android 12(API 31)及以上版本强制要求:所有带有<intent-filter>标签的四大组件(Activity、Service、BroadcastReceiver、ContentProvider)必须显式声明android:exported属性,Manifest合并失败是该属性缺失导致的。

分步修复方案

1. 修正主AndroidManifest.xml配置

  • 打开项目路径app/src/main/AndroidManifest.xml
  • 找到所有配置了<intent-filter>的组件,逐个添加android:exported属性:
    • 若组件需要被外部应用(如系统桌面、其他App)调用,设置为android:exported="true",例如App入口Activity必须设为true,示例配置:
      <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>
      
    • 若组件仅允许App内部调用,直接设置为android:exported="false"即可。

2. 排查第三方依赖引入的隐式组件

如果修改主Manifest后仍报错,是引入的第三方依赖内部组件未声明exported属性导致,按以下方式处理:

  1. 点击Android Studio顶部菜单栏 Build > Analyze APK,选择app/build/outputs/apk/debug/app-debug.apk打开,查看合并后的AndroidManifest.xml,定位所有未声明exported的组件完整包名和类名
  2. 在主Manifest文件中重载该组件的配置,显式添加exported属性,示例:
    <activity
        android:name="com.xxx.xxx.ThirdPartyActivity"
        android:exported="false"
        tools:node="merge" />
    
  3. 确保Manifest根标签已经添加tools命名空间:xmlns:tools="http://schemas.android.com/tools"

3. 单独运行Kotlin脚本的特殊配置

如果需要执行非Android逻辑的Kotlin代码,不需要走Android编译流程,按以下操作即可绕过Manifest校验:

  1. 右键项目根目录,选择 New > Module > Java or Kotlin Library,创建纯Kotlin模块
  2. 将需要单独运行的Kotlin代码放到该模块下,右键代码文件点击Run即可正常执行。

补充说明:如果选择降低SDK版本的方案,需要同时将模块级build.gradle中的compileSdk、targetSdk都修改为30或更低版本,仅修改单一项无法绕过Android 12的属性校验规则。

完成所有配置后,点击Android Studio右上角的 Sync Project with Gradle Files 同步项目,再清理重建即可解决报错。

内容的提问来源于stack exchange,提问作者Petr Šula

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 01:36:10