添加了 android:exported 但仍然出现错误面向 Android 12 及更高版本的应用程序需要为 android:exported 指定显式值

And*_*per 47 android manifest android-manifest targetsdkversion android-12

我已添加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>
Run Code Online (Sandbox Code Playgroud)

合并清单错误

play-services-auth-api-phone:17.4.0 清单、leakcanary-android:2.0-alpha-3 清单、firebase-auth-interop:20.0.0 清单、生命周期-viewmodel:2.3.1 清单、浏览器:1.0。 0 清单,firebase-auth:21.0.1 清单,材料:1.2.1 清单,slidingpanelayout:1.0.0 清单,vectordrawable:1.1.0 清单,recyclerview:1.1.0 清单,play-services-auth:19.0.0 清单、 room-runtime:2.1.0 清单、dagger-lint-aar:2.35.1 清单、navigation-dynamic-features-runtime: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 清单、transport-api:3.0.0 清单、protolite-well-known-类型:18.0.0 清单,markdown-processor:0.1.3 清单,play-services-measurement-base:19.0.0 清单,firebase-common-ktx:20.0.0 清单,activity-ktx:1.3.1 清单,firebase -crashlytics-ktx:18.0.0清单,coil-compose:1.3.1清单,multidex:2.0.1清单,core-runtime:2.1.0清单,fragment-testing:1.2.0清单,ui-graphics:1.0。 1 个清单、AndroidManifest.xml 导航文件、ui-tooling:1.0.0 清单、grpc-android:1.28.0 清单、ui-unit:1.0.1 清单、play-services-measurement:19.0.0 清单、play:core :1.9.1清单,注释实验:1.1.0清单,play-services-measurement-sdk-api:19.0.0清单,play-services-tasks:17.0.0清单,firebase-analytics:19.0.0清单, facebook-common:11.1.0 清单、drawerlayout:1.1.1 清单、AndroidManifest.xml 导航文件、navigation-compose:2.4.0-alpha09 清单、facebook-gamingservices:11.1.0 清单、firebase-firestore:23.0.0 清单、lifecycle-livedata:2.2.0 清单、legacy-support-core-ui:1.0.0 清单、test:monitor:1.2.0 清单、AndroidManifest.xml 导航文件、facebook-applinks:11.1.0 清单、viewpager:1.0 .0 清单、ui-geometry:1.0.1 清单、lifecycle-runtime-ktx:2.3.1 清单、constraintlayout:2.0.4 清单、ui-text:1.0.1 清单、AndroidManifest.xml 导航文件、firebase-installations-互操作:17.0.0 清单、过渡:1.3.0 清单、基础布局:1.0.1 清单、appcompat-resources:1.3.1 清单、运行时livedata:1.0.0 清单、运行时可保存:1.0.1 清单、 firebase-measurement-connector:19.0.0 清单、vectordrawable-animated:1.1.0 清单、主 nav_graph.xml 导航文件合并错误:错误:android:exported 需要显式指定 . 面向 Android 12 及更高版本的应用需要指定显式值 19.0.0 清单、firebase-encoders-json:18.0.0 清单、sqlite:2.0.1 清单、facebook-android-sdk:11.1.0 清单、firebase-components:17.0.0 清单、transport-api:3.0.0清单,protolite-well-known-types:18.0.0 清单,markdown-processor:0.1.3 清单,play-services-measurement-base:19.0.0 清单,firebase-common-ktx:20.0.0 清单,活动- ktx:1.3.1 清单、firebase-crashlytics-ktx:18.0.0 清单、coil-compose:1.3.1 清单、multidex:2.0.1 清单、core-runtime:2.1.0 清单、fragment-testing:1.2.0清单、ui-graphics:1.0.1 清单、AndroidManifest.xml 导航文件、ui-tooling:1.0.0 清单、grpc-android:1.28.0 清单、ui-unit:1.0.1 清单、play-services-measurement: 19.0.0 清单、play:core:1.9.1 清单、注释实验:1.1.0 清单、play-services-measurement-sdk-api:19.0.0 清单、play-services-tasks:17.0.0 清单、firebase -analytics:19.0.0 清单、facebook-common:11.1.0 清单、抽屉布局:1.1.1 清单、AndroidManifest.xml 导航文件、navigation-compose:2.4.0-alpha09 清单、facebook-gamingservices:11.1.0 清单、 firebase-firestore:23.0.0 清单、lifecycle-livedata:2.2.0 清单、legacy-support-core-ui:1.0.0 清单、test:monitor:1.2.0 清单、AndroidManifest.xml 导航文件、facebook-applinks: 11.1.0 清单、viewpager:1.0.0 清单、ui-geometry:1.0.1 清单、lifecycle-runtime-ktx:2.3.1 清单、constraintlayout:2.0.4 清单、ui-text:1.0.1 清单、AndroidManifest。 xml 导航文件、firebase-installations-interop:17.0.0 清单、transition:1.3.0 清单、foundation-layout:1.0.1 清单、appcompat-resources:1.3.1 清单、runtime-livedata:1.0.0 清单、运行时-saveable:1.0.1 清单、firebase-measurement-connector:19.0.0 清单、vectordrawable-animated:1.1.0 清单、主 nav_graph.xml 导航文件合并错误: 错误: android:exported 需要显式指定 . 面向 Android 12 及更高版本的应用需要指定显式值 19.0.0 清单、firebase-encoders-json:18.0.0 清单、sqlite:2.0.1 清单、facebook-android-sdk:11.1.0 清单、firebase-components:17.0.0 清单、transport-api:3.0.0清单,protolite-well-known-types:18.0.0 清单,markdown-processor:0.1.3 清单,play-services-measurement-base:19.0.0 清单,firebase-common-ktx:20.0.0 清单,活动- ktx:1.3.1 清单、firebase-crashlytics-ktx:18.0.0 清单、coil-compose:1.3.1 清单、multidex:2.0.1 清单、core-runtime:2.1.0 清单、fragment-testing:1.2.0清单、ui-graphics:1.0.1 清单、AndroidManifest.xml 导航文件、ui-tooling:1.0.0 清单、grpc-android:1.28.0 清单、ui-unit:1.0.1 清单、play-services-measurement: 19.0.0 清单、play:core:1.9.1 清单、注释实验:1.1.0 清单、play-services-measurement-sdk-api:19.0.0 清单、play-services-tasks:17.0.0 清单、firebase -analytics:19.0.0 清单、facebook-common:11.1.0 清单、抽屉布局:1.1.1 清单、AndroidManifest.xml 导航文件、navigation-compose:2.4.0-alpha09 清单、facebook-gamingservices:11.1.0 清单、 firebase-firestore:23.0.0 清单、lifecycle-livedata:2.2.0 清单、legacy-support-core-ui:1.0.0 清单、test:monitor:1.2.0 清单、AndroidManifest.xml 导航文件、facebook-applinks: 11.1.0 清单、viewpager:1.0.0 清单、ui-geometry:1.0.1 清单、lifecycle-runtime-ktx:2.3.1 清单、constraintlayout:2.0.4 清单、ui-text:1.0.1 清单、AndroidManifest。 xml 导航文件、firebase-installations-interop:17.0.0 清单、transition:1.3.0 清单、foundation-layout:1.0.1 清单、appcompat-resources:1.3.1 清单、runtime-livedata:1.0.0 清单、运行时-saveable:1.0.1 清单、firebase-measurement-connector:19.0.0 清单、vectordrawable-animated:1.1.0 清单、主 nav_graph.xml 导航文件合并错误: 错误: android:exported 需要显式指定 . 面向 Android 12 及更高版本的应用需要指定显式值 xml 导航文件、navigation-compose:2.4.0-alpha09 清单、facebook-gamingservices:11.1.0 清单、firebase-firestore:23.0.0 清单、lifecycle-livedata:2.2.0 清单、legacy-support-core-ui: 1.0.0 清单、test:monitor:1.2.0 清单、AndroidManifest.xml 导航文件、facebook-applinks:11.1.0 清单、viewpager:1.0.0 清单、ui-geometry:1.0.1 清单、生命周期运行时-ktx :2.3.1清单,constraintlayout:2.0.4清单,ui-text:1.0.1清单,AndroidManifest.xml导航文件,firebase-installations-interop:17.0.0清单,transition:1.3.0清单,基础布局: 1.0.1 清单、appcompat-resources:1.3.1 清单、runtime-livedata:1.0.0 清单、runtime-saveable:1.0.1 清单、firebase-measurement-connector:19.0.0 清单、vectordrawable-animated:1.1.0清单,主 nav_graph.xml 导航文件合并错误:错误:需要为 显式指定 android:exported。面向 Android 12 及更高版本的应用需要指定显式值 xml 导航文件、navigation-compose:2.4.0-alpha09 清单、facebook-gamingservices:11.1.0 清单、firebase-firestore:23.0.0 清单、lifecycle-livedata:2.2.0 清单、legacy-support-core-ui: 1.0.0 清单、test:monitor:1.2.0 清单、AndroidManifest.xml 导航文件、facebook-applinks:11.1.0 清单、viewpager:1.0.0 清单、ui-geometry:1.0.1 清单、生命周期运行时-ktx :2.3.1清单,constraintlayout:2.0.4清单,ui-text:1.0.1清单,AndroidManifest.xml导航文件,firebase-installations-interop:17.0.0清单,transition:1.3.0清单,基础布局: 1.0.1 清单、appcompat-resources:1.3.1 清单、runtime-livedata:1.0.0 清单、runtime-saveable:1.0.1 清单、firebase-measurement-connector: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:exported当相应组件定义了意图过滤器时,面向 Android 12 及更高版本的应用需要指定显式值。有关详细信息,请参阅 https://developer.android.com/guide/topics/manifest/activity-element#exported。Dairy.app 主清单(此文件)错误:需要为 明确指定 android:exported。android:exported当相应组件定义了意图过滤器时,面向 Android 12 及更高版本的应用需要指定显式值。有关详细信息,请参阅 https://developer.android.com/guide/topics/manifest/activity-element#exported。Dairy.app 主清单(此文件)

fai*_*izy 48

androidx.test:core库版本 1.3.0。升级到版本 1.4.0 修复了该问题。

  • 然而,有同样的问题,我的问题是由于没有碰撞:`'androidx.test.ext:junit:1.1.1'`到`'androidx.test.ext:junit:1.1.5'`造成的 (6认同)

Coo*_*ind 34

另请参见android:exported 需要为 <activity> 显式指定。面向 Android 12 及更高版本的应用需要指定.

感谢@faizy,@Android Developer,我做了这个。

将这些库升级到新版本:

androidTestImplementation "androidx.test.ext:junit:1.1.3"
androidTestImplementation "androidx.fragment:fragment-testing:1.4.1"
androidTestImplementation "androidx.test:core:1.4.0"
Run Code Online (Sandbox Code Playgroud)

我在这些依赖项中替换debugImplementationandroidTestImplementation

Sync Project with Gradle Files。运行项目(或重建,或运行Lint)。可能不会有帮助。那你应该做这个。

  1. 降级targetSdkVersion至30。

再次运行该项目。也许它会编译。

就我而言,所有需要和android:exported="true"呈现android:exported="false"的内容都在发生的地方合并。activityservicereceiverproviderAndroidManifest<intent-filter>

要查找 merged AndroidManifest,请切换到Project并展开app模块,然后构建 > 中间体 > merged_manifest > 调试。

在此输入图像描述

如果android:exported缺少某些内容,请找到相应的内容AndroidManifest并将其添加到那里。

  1. 升级targetSdkVersion到31。

再次运行该项目。如果无法编译,您可能应该重建该项目。通常,“构建”>“重建项目”、“文件”>“使缓存无效”>“无效并重新启动”。

一段时间后(几次 gradle 同步,重新启动 Android Studio),它就编译完成了。


And*_*per 29

要解决目标 sdk 31 中的此错误-

\n

1.首先将目标sdk设置为30

\n

2.然后进入合并清单

\n

3.查找是否有\xe2\x80\x99s任何未设置的活动、服务、接收者或提供者。覆盖android:exported所有这些条目并将其设置android:exportedtruefalse

\n

4.将目标sdk设置回31并运行项目

\n


Tat*_*aki 12

原因app/build.gradle可能如下。

\n
dependencies {\n    debugImplementation androidx.fragment:fragment-testing:<1.4.0-alpha02 or lower>\xe2\x80\x99\n}\n
Run Code Online (Sandbox Code Playgroud)\n
解决方案1
\n

更新fragment-testing1.4.0-alpha03或更高。

\n
解决方案2
\n

将以下内容添加到AndroidManifest.xml.

\n
dependencies {\n    debugImplementation androidx.fragment:fragment-testing:<1.4.0-alpha02 or lower>\xe2\x80\x99\n}\n
Run Code Online (Sandbox Code Playgroud)\n


Ame*_*bak 10

如果您使用的是 flutter ,升级flutter_local_notifications到最新版本(现在是 9.3.2)为我解决了这个错误。


小智 8

就我而言,问题在于严格使用 1.0.0 版本的依赖项androidx.test.core,因此我无法升级它。我所做的是android:exported="false"使用 tools:node="merge" 添加到我的主清单中的 androidx.test.core 活动,以便它可以与原始清单合并

<activity
            android:name="androidx.test.core.app.InstrumentationActivityInvoker$EmptyActivity"
      android:exported="false"
      tools:node="merge" >
</activity>
<activity
            android:name="androidx.test.core.app.InstrumentationActivityInvoker$EmptyFloatingActivity"
       android:exported="false"
       tools:node="merge">
</activity>
Run Code Online (Sandbox Code Playgroud)

并添加工具命名空间。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.myapp"
xmlns:tools="http://schemas.android.com/tools">
Run Code Online (Sandbox Code Playgroud)