我已将我的模拟器版本和 Android SDK 版本更新为 Android S ( Android 12 )。更新后,我无法运行该项目。我无法运行 Hello, World! 项目(空项目),但我可以构建 Gradle,但我无法运行该项目。我总是得到错误:
清单合并失败:针对 Android 12 及更高版本的应用需要为android: exported相应组件定义了意图过滤器时指定显式值。有关详细信息,请参阅 https://developer.android.com/guide/topics/manifest/activity- element#exported 。
android: exported
我该如何解决?
这是一个屏幕截图:
使用 Android 12 SDK 时如何解决此问题?
您需要指定android:exported="false"或android:exported="true"
android:exported="false"
android:exported="true"
显现:
<activity android:name=".MainActivity" android:exported="true" android:theme="@style/Theme.MyApplication.NoActionBar"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
如文件中所述:
如果您的应用以 Android 12 为目标并包含使用 Intent 过滤器的活动、服务或广播接收器,则您必须为这些应用组件显式声明 android:exported 属性。 警告 :如果活动、服务或广播接收器使用意图过滤器并且没有明确声明的 android:exported 值,则您的应用无法安装在运行 Android 12 的设备上。
如果您的应用以 Android 12 为目标并包含使用 Intent 过滤器的活动、服务或广播接收器,则您必须为这些应用组件显式声明 android:exported 属性。
警告 :如果活动、服务或广播接收器使用意图过滤器并且没有明确声明的 android:exported 值,则您的应用无法安装在运行 Android 12 的设备上。
还要检查何时对“android:exported”值使用真/假。