No se pueden filtrar los activos para densidades múltiples mediante herramientas de compilación SDK 21 o posterior

Debido a un problema de construcción de mi aplicación en modo de liberación con el gradle plugin 1.3.0, he cambiado a 1.4.0 (beta 2), que corrige dicho problema de construcción.

Sin embargo, mientras que algunos sabores construyen perfectamente, otros tienen su compilación abortada con el siguiente mensaje de error:

No se pueden filtrar activos para densidades múltiples utilizando las herramientas de compilación SDK 21 o posterior. Considere el uso de apk splits en su lugar.

No he encontrado ninguna referencia a la frase anterior, ¿qué debo hacer con los recursos de estos sabores, o incluso por qué este error sólo aparece en un par de sabores y no en todos ellos.

Editar: 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' } 

ResConfigs se sustituye por splits APK para densidades y arquitecturas. Observe la siguiente oración :

Cuando se utilizan herramientas de compilación mayores de 21 también se puede agregar resConfigs "nodpi", "hdpi" para limitar también las carpetas de densidad que se empaquetan. En su lugar, utilice apk splits para proporcionar diferentes apks a dispositivos con diferentes densidades.

Hay un informe de error para este problema .

Los resConfigs ofensivos tienen que ser removidos, y las divisiones de apk se pueden usar en su lugar.

Alternativamente, cambiar a build-tool 20.0.0 parece funcionar alrededor de este problema.

  • Acceso a recursos de R.raw en Android Instrumentation jUnit test
  • Android: ¿Por qué getDimension y getDimensionPixelSize devuelven lo mismo?
  • ¿El directorio elaborable de Android puede contener subdirectorios?
  • Recursos de apoyo para tabletas y móviles
  • No se puede usar el color referenciado (por tema) en dibujable
  • Cómo poner una sola imagen para diferentes tamaños de pantalla
  • Herramienta para convertir en lotes bitmaps de recursos de Android a diferentes densidades
  • Los recursos no traducibles sólo deben definirse en los valores base / carpeta - Android Export APK
  • "R no se puede resolver a una variable"?
  • Obtener recursos de color como cadena
  • El recurso colors.xml no funciona
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.