Android 从编译中排除xml文件[resource Shring]

Android 从编译中排除xml文件[resource Shring],android,gradle,android-gradle-plugin,proguard,android-proguard,Android,Gradle,Android Gradle Plugin,Proguard,Android Proguard,我想使用一些xml文件作为模型来预览布局的不同状态,但我不想将其包含在apk中,因为这些xml文件仅用于预览目的。我想告诉gradle哪些文件/目录可以忽略以获取资源 通过使用产品风格,以类似于所解释的方式轻松减少低内存设备的apk大小也很有用 也许proguard能帮上忙?如果您使用的是android studio,您可以根据需要的构建风格添加资源。例如,您可以仅为调试构建添加字符串资源,为主发布构建添加不同的字符串资源。只需右键单击“添加xml资源”,选择资源类型并指定源集 如果只为调试风

我想使用一些xml文件作为模型来预览布局的不同状态,但我不想将其包含在apk中,因为这些xml文件仅用于预览目的。我想告诉gradle哪些文件/目录可以忽略以获取资源

通过使用产品风格,以类似于所解释的方式轻松减少低内存设备的apk大小也很有用


也许proguard能帮上忙?

如果您使用的是android studio,您可以根据需要的构建风格添加资源。例如,您可以仅为调试构建添加字符串资源,为主发布构建添加不同的字符串资源。只需右键单击“添加xml资源”,选择资源类型并指定源集

如果只为调试风格添加布局,而不在主版本中添加布局,则每次签署apk时,这些布局都不会包含在apk中。希望有帮助:)

我们称之为“资源萎缩”

查看
收缩资源true
。生成系统将尝试查找具有此标志的未使用资源文件,并将它们从生成中删除。您可以将其添加到调试构建类型,以及任何构建风格

android {
    ...

    buildTypes {
        release {
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

为什么我以前没有想到这一点!:)谢谢你,这不是我认为我能解决这个问题的方法,但它是一个可行的解决方案:)而且,如果你正在构建世界范围的应用程序,请考虑我在我的问题中提供的链接,我的手机上只有8GB,选择我要卸载的应用程序来尝试另一个应用程序是很痛苦的……LousiChanaUL我回答了你的问题吗?你真正面临的问题是什么?如果我是对的,proGuard将删除所有未使用的类。是的,你回答了我的问题,配置这些构建风格只需要一点时间(并将导入的材质图标从插件Android Drawable Importer中一个接一个地移动到flavors dirs)。我添加了“模型”来调试flavor,但出现了一个错误<代码>xmlns:android=”http://schemas.android.com/apk/res/android“被Android Studio标记为红色,表示Uri未注册,且快速修复无法工作。。。问题是它完全禁用了自动完成,这对长名称资源来说是一个难题。你有过类似的不良行为吗?