如何解决当 targetSdkVersion 为 31 时,为什么我收到“清单合并失败:...需要为 `android:exported` 指定显式值”?
我试图在我的物理设备上运行一个 HelloWorld 项目,当我点击一个带有空活动的新项目时,Android Studio 创建了这个项目,但是当我运行该项目时,我收到一个 Manifest 合并失败,仅当 compileSdkVersion 为 31 时
>build.gradle(Module) 包含:
android {
compileSdkVersion 31
buildToolsversion "31.0.0"
defaultConfig {
applicationId "com.example.helloworld"
minSdkVersion 16
targetSdkVersion 31
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
}
所以当我运行这个项目时,我收到了这个错误:
Manifest merger Failed: Apps targeting Android 12 and higher are required to specify an explicit value for `android:exported` when the corresponding component has an intent filter defined. See https://developer.android.com/guide/topics/manifest/activity-element#exported for details.
问题是:为什么我在build.gradle(Module)中使用SdkVersion 29时没有出现这个错误,如下所示?
android {
compileSdkVersion 29
buildToolsversion "29.0.3"
defaultConfig {
applicationId "com.example.helloworld"
minSdkVersion 16
targetSdkVersion 29
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
}
最后,这让我产生了怀疑。如果新项目是自动创建的以使用需要 android:exported
到 Manifest 的最新 SDK 版本进行编译,为什么它没有自动插入?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。