【问题标题】:Can I make an exception for the manifest merger replace tag?我可以对清单合并替换标签进行例外处理吗?
【发布时间】:2017-02-07 07:20:05
【问题描述】:

这是我的应用程序清单,我想为我的所有库覆盖 android:supportsRtl 标记

<application
android:name=".ApplicationClass"
android:allowBackup="true"
android:hardwareAccelerated="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:largeHeap="true"
android:supportsRtl="false"
android:theme="@style/AppTheme"
tools:replace="android:icon,android:label,android:supportsRtl">

我有 5 libraries,我想用 tools:replace 替换 android:supportsRtl=”false”

但是one library 我想让它支持Rtl

问题是,我可以为需要 android:supportsRtl="true" 以实际支持 RTL 并让其他库被我的应用程序覆盖并保持 android:supportsRtl="false" 的库例外吗?

【问题讨论】:

    标签: android android-manifest manifest-merging


    【解决方案1】:

    很遗憾,目前这是不可能的。你要做的就是反过来,即指定这个标记应该应用于哪些包。

    使用marker selector tools:selector 指定您希望应用tools:replace 的其他4 个库的包名称。

    tools:selector="com.package.lib1, com.package.lib2"
    

    编辑

    正如 OP 在 cmets 中提到的,这仅适用于 &lt;permission&gt; 标签。

    【讨论】:

    • 好点!但我想我最终会与清单android:supportsRtl="true" 中所述的库清单发生合并冲突:(
    • 我无法理解会导致冲突的确切场景。您有 5 个模块,在您提到的选择器中,您想要覆盖其中 4 个的合并规则。第五个将带有它所具有的价值。为什么会冲突?
    • 好的,让我试试看会发生什么。谢谢!
    • 原来Selector 标记是在permision 标签上定义的,而不是在application 标签上。这样做会导致构建失败。
    • 从开发者网站深入了解您的链接:developer.android.com/studio/build/…
    猜你喜欢
    • 1970-01-01
    • 2014-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-24
    • 1970-01-01
    • 1970-01-01
    • 2014-10-10
    相关资源
    最近更新 更多