【发布时间】:2021-11-16 02:42:26
【问题描述】:
我已将 android:exported="true" 添加到清单中的唯一活动中,但在将编译 sdk 和目标 sdk 版本更新为 31 后仍然出现错误。我还尝试重建项目,使缓存无效并重新启动,但这没有帮助
错误- 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.
AndroidManifest 文件
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.xyz.abc">
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<application
android:name=".framework.presentation.BaseApplication"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name="com.xyz.presentation.MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
合并清单错误
其他清单文件(包含在合并中,但没有贡献任何 元素)firebase-installations:17.0.0清单, versionedparcelable:1.1.1 清单,运行时:1.0.1 清单, 测试:核心:1.2.0 清单,加载程序:1.0.0 清单,facebook-share:11.1.0 清单,leakcanary:leaksentry:2.0-alpha-3 清单, 材料对话框:输入:3.2.1 清单,材料图标扩展:1.0.0 清单,播放服务统计:17.0.0 清单,插值器:1.0.0 清单,活动组成:1.3.1 清单,材料波纹:1.0.0 清单,基础:1.0.0 清单,asynclayoutinflater:1.0.0 清单,savestate-ktx:1.1.0 清单, 导航动态功能片段:2.3.5 清单, firebase-ui-auth:7.2.0 清单,动画:1.0.1 清单, 动画核心:1.0.1 清单,installreferrer:1.0 清单, firebase-crashlytics:18.0.0 清单,ui:1.0.1 清单, 生命周期视图模型保存状态:2.3.1 清单, play-services-auth-base:17.0.0 清单,hilt-android:2.35.1 清单, material-dialogs:core:3.2.1 manifest, AndroidManifest.xml 导航 文件,已保存状态:1.1.0 清单,光标适配器:1.0.0 清单, sqlite-framework:2.0.1 manifest, room-ktx:2.1.0 manifest, leakcanary-android-core:2.0-alpha-3 清单,AndroidManifest.xml 导航文件,媒体:1.0.0 清单,协调器布局:1.1.0 清单,遗留支持核心实用程序:1.0.0 清单, 生命周期运行时:2.3.1 清单,线圈 kt:线圈:1.3.1 清单, ui-tooling-preview:1.0.0 清单,facebook-core:11.1.0 清单, 核心:1.6.0 清单,材料:1.0.0 清单,firebase-common:20.0.0 清单,文档文件:1.0.0 清单, 生命周期-viewmodel-compose:2.4.0-beta01 清单, play-services-base:17.1.0 清单,ui-tooling-data:1.0.0 清单, 线圈基础:1.3.1 清单,firebase-analytics-ktx:19.0.0 清单, localbroadcastmanager:1.0.0 清单,swiperefreshlayout:1.1.0-alpha03 清单,constraintlayout-compose:1.0.0-beta02 清单, core-ktx:1.6.0 清单,firebase-database-collection:18.0.0 清单, 线圈组成基础:1.3.1 清单,活动:1.3.1 清单, AndroidManifest.xml 导航文件,facebook-messenger:11.1.0 清单,打印:1.0.0 清单,customview:1.1.0 清单, 材料图标核心:1.0.0 清单, 播放服务测量 SDK:19.0.0 清单,片段:1.3.4 清单,firebase-appcheck-interop:16.0.0-beta01 清单, facebook-login:11.1.0 清单,cardview:1.0.0 清单, runtime-rxjava2:1.0.0 清单,viewpager2:1.0.0 清单, 播放服务广告标识符:17.0.0 清单, play-services-measurement-impl:19.0.0 清单, 生命周期-livedata-core:2.3.1 manifest, play-services-safetynet:17.0.0 manifest,AndroidManifest.xml 导航文件, 生命周期-viewmodel-ktx:2.3.1 清单,transport-backend-cct:3.0.0 清单,片段 ktx:1.2.4 清单,appcompat:1.3.0 清单, 运输运行时:3.0.0 清单,生命周期-livedata-core-ktx:2.2.0 清单,firebase-firestore-ktx:23.0.0 清单, legacy-support-v4:1.0.0 清单,play-services-basement:17.1.1 清单,firebase 存储:20.0.0 清单, play-services-auth-api-phone:17.4.0 清单, leakcanary-android:2.0-alpha-3 清单,firebase-auth-interop:20.0.0 清单,生命周期视图模型:2.3.1 清单,浏览器:1.0.0 清单, firebase-auth:21.0.1 清单,材料:1.2.1 清单, 滑动面板布局:1.0.0 清单,vectordrawable:1.1.0 清单, recyclerview:1.1.0 清单,play-services-auth:19.0.0 清单, 房间运行时:2.1.0 清单,dagger-lint-aar:2.35.1 清单, 导航动态功能运行时:2.3.5 清单, play-services-measurement-api:19.0.0 清单, firebase-encoders-json:18.0.0 清单,sqlite:2.0.1 清单, facebook-android-sdk:11.1.0 清单,firebase-components:17.0.0 清单,传输 api:3.0.0 清单, protolite-well-known-types:18.0.0 清单,降价处理器:0.1.3 manifest, play-services-measurement-base:19.0.0 manifest, firebase-common-ktx:20.0.0 清单,activity-ktx:1.3.1 清单, firebase-crashlytics-ktx:18.0.0 清单,线圈组成:1.3.1 清单, multidex:2.0.1 清单,核心运行时:2.1.0 清单, 片段测试:1.2.0 清单,ui-graphics:1.0.1 清单, AndroidManifest.xml 导航文件,ui-tooling:1.0.0 manifest, grpc-android:1.28.0 清单,ui-unit:1.0.1 清单, 播放服务测量:19.0.0 清单,播放:核心:1.9.1 清单, 注释实验:1.1.0 清单, play-services-measurement-sdk-api:19.0.0 清单, 播放服务任务:17.0.0 清单,firebase 分析:19.0.0 清单,facebook-common:11.1.0 清单,抽屉布局:1.1.1 manifest,AndroidManifest.xml 导航文件, 导航-撰写:2.4.0-alpha09 清单, facebook-gamingservices:11.1.0 清单,firebase-firestore:23.0.0 清单,生命周期-livedata:2.2.0清单, legacy-support-core-ui:1.0.0 manifest, test:monitor:1.2.0 manifest, AndroidManifest.xml 导航文件,facebook-applinks:11.1.0 清单,viewpager:1.0.0 清单,ui-geometry:1.0.1 清单, 生命周期运行时 ktx:2.3.1 清单,约束布局:2.0.4 清单, ui-text:1.0.1 manifest,AndroidManifest.xml 导航文件, firebase 安装互操作:17.0.0 清单,过渡:1.3.0 清单,基础布局:1.0.1 清单,appcompat 资源:1.3.1 清单,运行时实时数据:1.0.0 清单,运行时可保存:1.0.1 清单,firebase 测量连接器:19.0.0 清单, vectordrawable-animated:1.1.0 清单,主要 nav_graph.xml 导航 文件合并错误:错误:android:exported 需要明确 指定为 .面向 Android 12 及更高版本的应用是 需要为
android:exported指定显式值 相应的组件定义了一个意图过滤器。看 https://developer.android.com/guide/topics/manifest/activity-element#exported 详情。 Dairy.app 主清单(此文件)错误: android:exported 需要为 .应用 需要针对 Android 12 及更高版本指定显式android:exported的值,当相应的组件具有 定义了意图过滤器。看 https://developer.android.com/guide/topics/manifest/activity-element#exported 详情。 Dairy.app 主清单(此文件)错误: android:exported 需要为 .应用 需要针对 Android 12 及更高版本指定显式android:exported的值,当相应的组件具有 定义了意图过滤器。看 https://developer.android.com/guide/topics/manifest/activity-element#exported 详情。 Dairy.app 主清单(此文件)
【问题讨论】:
-
检查您的合并清单(例如,通过 Android Studio 清单编辑器中的子选项卡),看看您是否有需要处理的库中的组件。
-
@CommonsWare Merged manifest has nothing to show with same error-"错误:需要为
显式指定 android:exported。针对 Android 12 及更高版本的应用需要为 android:exported对应组件定义了意图过滤器时" -
@CommonsWare 如果是由于某些库,我相信我无法更改库活动的清单?我没有使用任何其他库,除了基本的 android 库,如 jetpack compose、hilt、room、firebase等
-
@CommonsWare 添加了合并清单完整错误/有问题的日志。
-
"如果是由于某些图书馆,我相信我无法更改图书馆活动的清单"——您应该能够使用
tools:replace覆盖android:exported值,但您需要确定需要它的组件。
标签: android android-manifest manifest android-12 targetsdkversion