ShrinkResources缩小了styles.xml

时间:2017-02-16 12:15:45

标签: android gradle shrinkresources

shrinkResources我遇到了一个奇怪的问题。如果我通过属性直接指定我的drawable的背景,它可以正常工作。但是如果我将它移动到样式,shrinkResources会开始缩小它们,认为它们没有被使用。这不像我在运行时连接可绘制的文件名,很难检测。根据我的观点,这是一个非常广泛的案例。

我也知道我可以在keep.xml中列出我的所有可绘制内容,以防止它们缩小。但是我有很多文件,我计划在将来添加它们,这可能会导致发布中的错误(如果我忘记添加它们)。还有另一种解决方法吗?

styles.xml

<style name="MyStyle">
    <item name="android:background">@drawable/my_drawable</item>
</style>

my_layout.xml

<Button style="@style/MyStyle" ... />

my_drawable.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="rectangle" >
            <corners android:radius="25dip" />
            <solid android:color="@android:color/white" />
        </shape>
    </item>
</selector>

./gradlew assembleRelease --info

Skipped unused resource res/drawable/my_drawable.xml: 1348 bytes (replaced with small dummy file of size 104 bytes)

my_drawable.xml 变为:

<?xml version="1.0" encoding="utf-8"?>
<x />

为了论证我指定: 应用/ SRC /主/ RES / keep.xml

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools"
    tools:shrinkMode="safe" />

0 个答案:

没有答案