Problema al migrar a Gradle Experimental 2.5: ningún método AndroidConfig
Acabo de actualizar mi configuración de Android Studio a 1,3 (última estable a 31 de agosto de 2015) y tengo que utilizar la última integración de NDK. Mi versión anterior de Android Studio fue 1.2.1 (estable también).
Después de la migración de Google a la guía experimental de Gradle logré adaptar fácilmente mis varios guiones del gradle.
- Mezcla de complementos androides de gradle y gradle-experimental
- Mapa de progreso de Android gradle experimental plugin
- Gradle-experimental: 0.1.0 buildConfigField
- Cómo utilizar bibliotecas extra * .so en Android Studio y NDK
- LintOptions para la herramienta de compilación experimental de Gradle en Android Studio 1.3
Sin embargo, Gradle Sync falla con el siguiente error:
Error:No such property: android for class: com.android.build.gradle.managed.ProductFlavor
[Actualización 1 -> ver abajo, error actualizado]
Cuando intento realizar el proyecto, obtengo un error un poco más detallado:
Error:(17, 1) A problem occurred configuring project ':app'. > Exception thrown while executing model rule: model.android > No such property: android for class: com.android.build.gradle.managed.ProductFlavor
La aplicación se refiere al código principal de la aplicación (con actividades y otros).
Utilizando la función F4 > Jumping to Source
, abre mi script build.gradle
desde mi proyecto de app
.
Este es el contenido de la secuencia de comandos antes mencionada:
apply plugin: 'com.android.model.application' // experimental model { android { compileSdkVersion = 21 buildToolsVersion = '22.0.1' defaultConfig.with { applicationId = "company.com.myapplication" minSdkVersion.apiLevel = 10 targetSdkVersion.apiLevel = 21 versionCode = 1 versionName = "1.0" // NDK android.ndk { moduleName = "MyAwesomeJNILib" cFlags "-std=c99" } } android.buildTypes { release { minifyEnabled = false proguardFiles += file('proguard-rules.pro') } } android.productFlavors { // for detailed abiFilter descriptions, refer to "Supported ABIs" @ // https://developer.android.com/ndk/guides/abis.html#sa create("arm") { ndk.abiFilters += "armeabi" } create("arm7") { ndk.abiFilters += "armeabi-v7a" } create("arm8") { ndk.abiFilters += "arm64-v8a" } create("x86") { ndk.abiFilters += "x86" } create("x86-64") { ndk.abiFilters += "x86_64" } create("mips") { ndk.abiFilters += "mips" } create("mips-64") { ndk.abiFilters += "mips64" } // To include all cpu architectures, leaves abiFilters empty create("all") } packagingOptions { exclude 'LICENSE.txt' } } } dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') compile 'com.android.support:appcompat-v7:22.2.0' compile 'com.google.code.gson:gson:2.3.1' compile 'com.squareup.okhttp:okhttp-android-support:2.4.0' compile project(':bluetoothmanager') compile 'joda-time:joda-time:2.8.1' // Units Testing //androidTestCompile 'junit:junit:4.12' compile 'junit:junit:4.12' // experimental }
Como puede ver, no hay nada muy elegante aquí. Pero usted puede notar que hay alguna configuración de prueba de unidad:
// Units Testing //androidTestCompile 'junit:junit:4.12' compile 'junit:junit:4.12' // experimental
androidTestCompile
no pudo ser resuelto mientras que migraba a GradleExperimental así que modificó después de una solución que puedo no más encontrar (lo siento) donde haría poner la compile
simple en lugar de androidTestCompile
. Este fue el error:
Error:(71, 0) Gradle DSL method not found: 'androidTestCompile()'
He intentado comparar uno de la muestra de Google de NDK ( hello-jini
por ejemplo) como se proporciona en la guía de aforemention y disponible aquí .
Excepto el packagingOptions
no pude encontrar ninguna diferencia que sería responsable de mi mal. Traté de eliminar packagingOptions
pero eso no hizo un solo cambio en absoluto.
[UPDATE 1]
Notará que el mensaje de error más detallado indica que está en la línea # 17, que es donde declaro mi configuración de generación nativa . cFlags
el error que era cFlags
debe cambiar a CFlags
y agregué el =
como requerido por la nueva versión de Gradle. Esto ayudó, el error no aparece más pero cambió para:
Error:No such property: android for class: com.android.build.gradle.managed.AndroidConfig
- Agregue el producto a la experimental Android gradle plugin library
- Android gradle-experimental con enlace de datos no funciona?
- La compilación de código nativo de Android Studio es lenta
- No se encontró el método DSL de Gradle: 'error proporcionado ()' con gradle experimental
- Gradle (plugin experimental androide) ignora una dependencia del proyecto
- En Android Studio 2.1.3 ¿No funciona el gradle experimental?
- ¿Cómo construir el módulo de NDK usando gradle experimental plugin?
- Gradle experimental incluir directorios de archivos a través de la directiva srcDir srcFile
Para la primera parte.
BuildType, sabores … están fuera del bloque androide, pero dentro del bloque del modelo.
apply plugin: 'com.android.model.application' // experimental model { android { defaultConfig.with { } } android.ndk { } android.buildTypes { release { } } android.productFlavors { } }