Android 12中如何避免exported属性值错误?
解决AndroidTest中InstrumentationActivityInvoker$BootstrapActivity的android:exported报错
问题原因
报错的是AndroidX Test库内部的InstrumentationActivityInvoker$BootstrapActivity,合并后的测试Manifest里该组件未显式声明android:exported属性,而你的应用目标SDK为Android 12+,触发了系统强制要求。你自己的Activity已添加属性,但测试依赖库的组件未处理。
解决方法
升级AndroidX Test Core库到最新版本
AndroidX Test团队已在后续版本修复此问题,在Module级别的build.gradle中更新依赖:androidTestImplementation 'androidx.test:core:1.5.0+'可确认最新稳定版本号后再修改,同步依赖后重新构建即可。
在测试Manifest中显式声明该Activity
若暂时无法升级库,可在src/androidTest/AndroidManifest.xml中添加如下代码,指定android:exported属性:<activity android:name="androidx.test.core.app.InstrumentationActivityInvoker$BootstrapActivity" android:exported="false" />此操作会在Manifest合并时覆盖库的默认声明,满足Android 12+的规则。
同步升级相关测试依赖
若使用了androidx.test.ext:junit、androidx.test:runner等测试相关库,建议一并升级到兼容版本,避免其他Manifest合并问题。
内容的提问来源于stack exchange,提问作者arun
相关产品推荐
相关产品推荐

