无法使用SDK构建工具21或更高版本过滤多个密度的资产

时间:2015-09-21 12:47:31

标签: android android-gradle android-resources

由于使用gradle插件1.3.0在发布模式下构建我的应用程序时出现问题,我已切换到1.4.0(beta 2),修复了构建问题。

然而,虽然某些风格构建完美,但其他风格的构建已中止,并显示以下错误消息:

  

无法使用SDK构建工具21或更高版本过滤多个密度的资产。请考虑使用apk拆分。

我没有找到任何关于上述句子的参考,我应该如何处理这些口味的资源,甚至为什么这个错误只出现在几种口味而不是所有口味中。

编辑:build.gradle

apply plugin: 'com.android.application'

android {
    signingConfigs {
        config {
        }
    }
    compileSdkVersion 23
    buildToolsVersion "23.0.1"
    defaultConfig {
        applicationId "com.example.appname"
        minSdkVersion 8
        targetSdkVersion 23
        versionCode 1
        versionName '0.0.1'
    }
    buildTypes {
        release {
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            minifyEnabled true
            zipAlignEnabled true
            signingConfig signingConfigs.config
        }
        debug {
            applicationIdSuffix 'debug'
            versionNameSuffix '_debug'
        }
    }
    flavorDimensions "googleplay"
    productFlavors {
        noplay {
            dimension "googleplay"
            versionCode Integer.parseInt(defaultConfig.versionCode + "0")
            buildConfigField "boolean", "HAS_GOOGLE_PLAY", "false"

            resConfigs "ldpi", "mdpi"
            // so far we are using the noplay flavor only for old devices, which do not have hidpi
        }
        play {
            dimension "googleplay"
            versionCode Integer.parseInt(defaultConfig.versionCode + "1")
            buildConfigField "boolean", "HAS_GOOGLE_PLAY", "true"
            minSdkVersion 9
        }
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')

    // Google Play services (analytics)
    playCompile 'com.google.android.gms:play-services-analytics:8.1.0'

    // ActionBar and support libraries
    compile 'com.android.support:appcompat-v7:23.0.1'
    compile 'com.android.support:support-v4:23.0.1'
}

1 个答案:

答案 0 :(得分:11)

对于密度和体系结构,

resConfigs被APK splits替换。请注意以下sentence

  

使用21岁以上的构建工具时,您还可以添加resConfigs   " nodpi"," hdpi"还限制打包的密度文件夹。   相反,使用apk拆分为设备提供不同的apks   不同的密度。

bug report for this issue

必须删除违规的resConfigs,并且可以在其中使用apk拆分。

或者,切换到构建工具20.0.0似乎解决了这个问题。