【发布时间】:2021-11-16 13:09:49
【问题描述】:
我在清单中为整个应用定义了一个默认主题:
<application
android:name="com.my.app"
android:allowBackup="false"
android:theme="@style/AppTheme">
在我将新的 AAR 库添加到项目中之前,一切都按预期进行。在此之后,我的主题设置将被忽略,无论我是在 Application 标记中定义它,还是为每个单独的 Activity 定义它。
在我的应用程序中,res/values 路径下只有一个 styles.xml 实例(其中定义了 AppTheme)。另一方面,AAR 库在以下位置定义了相同的主题:res/values/values.xml、res/values-land/values-land.xml、res/values-sw600dp-v13/values-sw600dp-v13.xml。
所以,我想我的问题是如何防止库模块中的主题覆盖我自己的主题?
【问题讨论】:
-
作为黑客尝试更改主题名称并检查其是否覆盖。
-
@Manohar,这是一种解决方法。有趣的是,一旦我更改了主题的名称,构建失败并要求将
tools:replace="android:theme"添加到清单中。所以,它看起来像一个错误:当app的主题和lib的主题具有相同的名称时,清单合并无法区分它们。我想知道这种方法是否有有效的用例。无论如何,请发布您的解决方法作为答案。 -
很高兴知道它有效,我将按照您为未来读者的建议发布答案。
标签: android android-theme