如果我们从build.gradle文件中删除resconfigs会发生什么?

时间:2016-07-04 06:33:46

标签: android build.gradle

我的build.gradle文件编写如下:

    compileSdkVersion 22
    buildToolsVersion "22.0.1"

    defaultConfig {
        applicationId "com.abc"
        minSdkVersion 14
        targetSdkVersion 22
        versionCode 16
        versionName "0.1.1"
        multiDexEnabled true
        resConfigs "hdpi", "xhdpi", "xxhdpi", "xxxhdpi"
    }

当我尝试构建代码时,它会给出以下错误:

Execution failed for task ':app:processDebugResources'.
> Cannot filter assets for multiple densities using SDK build tools 21 or later. 
 Consider using apk splits instead.

当我从defaultConfig中删除resConfigs时,将删除Above错误并成功构建Code并生成apk。

这个apk是否可以在所有设备上运行,因为它之前正在运行? 或者我有任何错误吗?

如果有任何其他解决方案,请建议我。我只想维持单个apk。

提前致谢。

1 个答案:

答案 0 :(得分:0)

确实从build.gradle文件中删除resConfigs行将创建一个与以前相同的设备上运行的APK文件。它可能只是更大一点,因为包括更多的资源。如果你想将APK缩小到与以前类似的水平,你可以添加一个"分裂" " defaultConfigs"之后的部分部分:

splits {
    density {
        enable true
        reset()
        include "hdpi", "xhdpi", "xxhdpi", "xxxhdpi"
    }
}

这将包括您之前使用的密度相同的资源,并忽略其他密度。