2017-02-07 29 views
1

这是我的应用程序的清单,我想覆盖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我想让它supportRtl

的问题是,我可以破例于需要android:supportsRtl="true"实际支持RTL并保留其他库通过我的应用程序被覆盖,并保持android:supportsRtl="false"图书馆吗?

回答

1

不幸的是,目前这是不可能的。你需要做的是另辟蹊径,即指定该标记应该应用于哪些软件包。

利用marker selectortools:selector指定要将tools:replace应用于的其他4个库的包名称。

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

编辑

正如意见中提到的OP,这将只能用于<permission>标签。

+0

好点!但我认为我最终会遇到与清单中声明的​​库清单合并冲突:android:supportsRtl =“true”':( –

+0

我无法理解确切的场景,哪里会发生冲突。您有5个模块,在你选择的选择器中,你希望覆盖它们中的4个合并规则,第五个将与它的值一起出现,为什么它会发生冲突? – azizbekian

+0

好的,让我试试看,看看会发生什么 谢谢你! –

相关问题