本文介绍了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如何在清单中覆盖导出的标签?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!