Uso de las divisiones de APK para el tipo de generación Release pero no Debug

He implementado con éxito APK Splits para que se generen APKs separados para diferentes ABI.

Sin embargo, para la eficiencia (y como no tengo necesidad de APKs no-armeabi-v7a en depuración), me gustaría limitar las compilaciones de depuración para generar sólo APK armeabi-v7a.

¿Cómo se puede hacer esto?

Una idea es con esto:

abi { enable true reset() include 'x86', 'armeabi-v7a', 'mips' universalApk false } 

Tal vez hay alguna manera de establecer enable basado en el tipo de construcción?

Puede establecer enable basado en el argumento de la línea de comandos. He resuelto algo similar problema cuando quería utilizar splits sólo para la versión de lanzamiento, pero no para compilaciones regulares de depuración.

 splits { abi { enable project.hasProperty('splitApks') reset() include 'x86', 'armeabi-v7a' } } 

Y luego ./gradlew -PsplitApks assembleProdRelease (prod es un sabor en mi caso).

Puede probar una variación en la respuesta de @ Geralt_Encore, que evita el comando gradlew separado. En mi caso, sólo me importó usar la división APK para reducir el tamaño del archivo APK liberado, y quería hacerlo completamente en Android Studio.

 splits { abi { enable gradle.startParameter.taskNames.contains(":app:assembleRelease") reset() include 'x86', 'armeabi-v7a', 'mips' universalApk false } } 

Es posible que deba reemplazar el prefijo :app por el nombre de su módulo de aplicación si no tiene literalmente nombre de app .

Por lo que he visto, el Build | Generar elemento de menú APK firmado en Android Studio genera el APK utilizando el objetivo assemblRelease Gradle.

Tenga en cuenta que si está generando un APK utilizando los sabores de compilación, o su versión de lanzamiento no se denomina release , deberá cambiar el objetivo assembleRelease acuerdo, por ejemplo, assemblePaidRelease si se paid su sabor de construcción.

De hecho, todavía necesita habilitar Splits, de lo contrario su APK incluirá libs para todos los ABI y eso probablemente no es lo que quiere.

Esto debería funcionar para sus necesidades:

 buildTypes { debug { splits { abi { enable true reset() include 'armeabi-v7a' universalApk false } } ... } release { splits { abi { enable true reset() include 'x86', 'armeabi-v7a', 'mips' universalApk false } } ... } } 
  • Gradle android build para diferentes arquitecturas de procesador
  • Android Studio 1.3 error multidex en gradle
  • Appcompat-v7: 21.0.0 ': No se encontró ningún recurso que coincida con el nombre dado: attr' android: actionModeShareDrawable '
  • Gradle no puede conectarse a repo de maven a través de proxy corporativo - necesita configurar a través de Sencha / Córdoba
  • Habilitar Soporte MultiDex en Android para lograr métodos de 65K + en Eclipse
  • Generar proyecto de Android en línea de comandos en OSX: Tarea 'assemblDebug' no se encuentra en el proyecto raíz
  • Manera correcta de agregar la biblioteca global en android-studio / gradle
  • Android studio - No se pudo encontrar el destino android-18
  • Problema de actualización en la versión de herramientas de compilación de gradle de 1.2.3 a 1.3.1
  • Gradle: DefaultAndroidSourceDirectorySet to File utilizando el método toString () ha quedado obsoleto
  • Android studio no puede resolver import org.json.JSONObject
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.