本文介绍了Android如何在清单中覆盖导出的标签?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想将目标SDK从30升级到31。但我收到了这个错误:

当我在明显的合并中环顾四周时。我看到我在应用中使用的一个第三方库没有添加android:exported标签。

 <service android:name="com.****.MessagingService" >
            <intent-filter>
                <action android:name="com.google.firebase.MESSAGING_EVENT" />
            </intent-filter>
        </service>

所以这是我的问题。如何将此服务重写为EXPORT FALSE,如下所示?

<service android:exported="false"
 android:name="com.****.MessagingService" >
                <intent-filter>
                    <action android:name="com.google.firebase.MESSAGING_EVENT" />
                </intent-filter>
            </service> 

推荐答案

Android Studio将合并您的项目及其依赖项的所有清单文件。

较高级别的清单始终可以优先并覆盖依赖项中的值。选中此paragraph in the documentation

由于依赖项根本不指定exported值,因此您可以覆盖顶级清单文件中的每个服务,如下所示:

<service android:exported="false"
 android:name="com.****.MessagingService" />

这将合并com.****.MessagingService的服务标签值,并应用导出的值。

这篇关于Android如何在清单中覆盖导出的标签?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-16 21:24