Android 12+下App Bundle因exported属性报错无法安装的解决方法
检查所有带intent-filter的组件类型:别漏了
activity-alias,错误提示明确提到该组件,很多人只处理了Activity、Service、BroadcastReceiver,忽略了别名组件,需确保所有带<intent-filter>的activity-alias也添加android:exported属性。排查第三方依赖库的Manifest:问题常出在引入的第三方库中,这些库的组件可能带有intent-filter但未设置
android:exported。可通过Gradle命令查看合并后的完整Manifest:./gradlew app:mergeReleaseAndroidManifest命令执行后,在
app/build/intermediates/merged_manifests/release/AndroidManifest.xml路径下找到合并后的文件,搜索所有带<intent-filter>的组件,确认是否存在未设置android:exported的项。如果有,可在自己的Manifest中重新声明该组件并添加android:exported属性覆盖。检查属性拼写与格式:确认
android:exported属性无拼写错误(注意为小写exported),且使用英文引号,正确写法为android:exported="true"或android:exported="false",避免中文引号或语法错误。清理构建缓存后重新打包:旧构建缓存可能导致Manifest未更新,执行以下命令清理缓存后重新构建:
./gradlew clean ./gradlew assembleRelease确认Target SDK版本:确保Module级别
build.gradle中的targetSdkVersion设置为31(Android 12)及以上,该版本开始强制要求带intent-filter的组件必须声明android:exported属性,版本过低可能导致检测逻辑异常。
内容的提问来源于stack exchange,提问作者Shaik Sai Farook

