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

Android 12(API31+)应用安装失败:测试组件未指定android:exported

解决Android 12测试依赖Manifest导致的INSTALL_PARSE_FAILED_MANIFEST_MALFORMED错误

以下是几个可行的修复方案,按优先级推荐:

  • 升级测试依赖版本
    这个问题在androidx.test:core 1.5.0及以上版本已被官方修复。直接在模块的build.gradle(或build.gradle.kts)中更新相关测试依赖的版本:

    dependencies {
        androidTestImplementation 'androidx.test:core:1.5.0'
        androidTestImplementation 'androidx.test:runner:1.5.2'
        androidTestImplementation 'androidx.test:rules:1.5.0'
        // 其他测试依赖同步升级到对应兼容版本
    }
    

    同步gradle后,自动生成的Manifest里的三个Activity会带上正确的android:exported属性。

  • 手动在测试Manifest中覆盖属性
    如果暂时无法升级依赖,可在src/androidTest/AndroidManifest.xml中手动为这三个Activity添加android:exported属性,通过Manifest合并规则覆盖自动生成的内容:

    1. 先在Manifest根节点添加tools命名空间:
      <manifest xmlns:android="http://schemas.android.com/apk/res/android"
                xmlns:tools="http://schemas.android.com/tools"
                package="你的测试包名">
      
    2. 加入三个Activity的声明:
      <activity
          android:name="androidx.test.core.app.BootstrapActivity"
          android:exported="false"
          tools:node="merge" />
      <activity
          android:name="androidx.test.core.app.EmptyActivity"
          android:exported="false"
          tools:node="merge" />
      <activity
          android:name="androidx.test.core.app.EmptyFloatingActivity"
          android:exported="false"
          tools:node="merge" />
      

    tools:node="merge"会让系统把你的配置和自动生成的Manifest内容合并,确保exported属性生效。

  • 排查并强制依赖版本统一
    若项目中存在其他测试库间接引入旧版本androidx.test:core,可通过依赖树排查:
    在终端执行命令:

    ./gradlew app:dependencies
    

    找到所有引用androidx.test:core的地方,然后在build.gradle中添加版本强制规则:

    configurations.all {
        resolutionStrategy {
            force 'androidx.test:core:1.5.0'
        }
    }
    

    这样能确保所有依赖都使用指定的修复版本。

内容的提问来源于stack exchange,提问作者Iris-Smile

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 10:40:26