清单合并失败:即使我的 AndroidManifest.xml 文件中没有服务,也需要为 <service> 显式指定 android:exported
Posted
技术标签:
【中文标题】清单合并失败:即使我的 AndroidManifest.xml 文件中没有服务,也需要为 <service> 显式指定 android:exported【英文标题】:Manifest merger failed : android:exported needs to be explicitly specified for <service> even if there were no services in my AndroidManifest.xml file 【发布时间】:2021-11-03 03:09:19 【问题描述】:清单合并失败:需要明确指定 android:exported 。当相应组件定义了 Intent 过滤器时,面向 Android 12 及更高版本的应用需要为
android:exported
指定显式值。详情请见https://developer.android.com/guide/topics/manifest/activity-element#exported。
我的应用程序的AndroidManifest.xml
文件中没有<services
,我还查找了每个AndroidManifest.xml
文件,它们也没有任何<service
元素,那么为什么会出现此错误?
我的合并清单选项卡中没有错误,但是,第一个清单有两个 <receiver
,我已经在其中手动添加了 android:exported
属性。
【问题讨论】:
也许您正在使用具有服务的库。你检查你的合并清单了吗?在 Android Studio 的清单编辑器中有一个子选项卡。 【参考方案1】:在app
-> src
-> main
-> AndroidManifest.xml
需要在<Activity>
下的每个<Activity>
中显式添加android:exported="true"
的标签
<application
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/Theme.Eynetic">
<activity android:name=".Splash_Screen"
android:theme="@style/SplashTheme"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".MainActivity"
android:theme="@style/MainTheme"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
查看代码中的活动标签...
<activity android:name=".Splash_Screen"
android:theme="@style/SplashTheme"
android:exported="true">
目前我正在对每个活动执行此操作,因为这是 Android Studio 给出的错误,但也许有更好的方法在代码中的某处仅添加一次。
【讨论】:
【参考方案2】:尝试在您自己的清单文件中添加android:exported = false
pr android:exported = true
并编译代码。我希望这能解决你的问题。因为在通知中手动添加是行不通的。
【讨论】:
在哪里添加? 把它放在你在清单文件中声明的 MainActivity 标签下面 我的MainActivity
已经设置了这个属性。我认为您没有仔细阅读问题。
如果这不起作用,请尝试将 Target SDK 设置为 30。编译并重建项目。
添加清单屏幕截图如何理解清单中的内容。以上是关于清单合并失败:即使我的 AndroidManifest.xml 文件中没有服务,也需要为 <service> 显式指定 android:exported的主要内容,如果未能解决你的问题,请参考以下文章
清单合并失败:属性 application@appComponentFactory 无法解决此问题
清单合并失败:uses-sdk:minSdkVersion 14
清单合并失败并出现多个错误:Android Studio Java
导入 Facebook sdk 后,清单合并失败并出现多个错误