Grade Plugin 3-alpha1 outputFile causa error

Estoy intentando actualizar un proyecto a Android Studio 3.

El siguiente fragmento ya no se acepta en un archivo build.gradle.

applicationVariants.all { variant -> variant.outputs.each { out -> def oFile =out.outputFile // This line causes failure //... } } 

El error es un simple "no válido", pero el intellisense sugiere que es como se autocompletes bien.

Comprobar la idea.log muestra la excepción siguiente:

 Caused by: java.lang.RuntimeException: Not valid. at com.android.ide.common.build.ApkData.getMainOutputFile(ApkData.java:136) at com.android.build.gradle.internal.api.BaseVariantOutputImpl.getOutputFile(BaseVariantOutputImpl.java:60) at com.android.build.gradle.internal.api.ApkVariantOutputImpl_Decorated.getOutputFile(Unknown Source) at org.gradle.internal.metaobject.BeanDynamicObject$MetaClassAdapter.getProperty(BeanDynamicObject.java:228) at org.gradle.internal.metaobject.BeanDynamicObject.tryGetProperty(BeanDynamicObject.java:171) at org.gradle.internal.metaobject.CompositeDynamicObject.tryGetProperty(CompositeDynamicObject.java:55) at org.gradle.internal.metaobject.AbstractDynamicObject.getProperty(AbstractDynamicObject.java:59) at com.android.build.gradle.internal.api.ApkVariantOutputImpl_Decorated.getProperty(Unknown Source) 

No puedo encontrar ninguna documentación sobre Gradle 4. ¿Sería esto un error o una función que está obsoleta quizás?

También presentado en: https://issuetracker.google.com/issues/38408231

Actualización : Corrección para renombrar APK :

Utilice todos los iteradores en lugar de cada uno :

 android.applicationVariants.all { variant -> variant.outputs.all { outputFileName = "${variant.name}-${variant.versionName}.apk" } } 

Respuesta anterior, aún válida : Es un problema conocido con el nuevo complemento:

Este error de generación se produce porque las tareas específicas de la variante ya no se crean durante la fase de configuración. Esto hace que el plugin no conozca todas sus salidas por adelantado, pero también significa tiempos de configuración más rápidos. Como alternativa, introduciremos nuevas API para proporcionar funcionalidad similar.

Tenemos que esperar una forma alternativa de hacerlo, de acuerdo con la Guía de Migración .

Si su complemento de error admite explícitamente la ruta del archivo de configuración, puede ser un trabajo alrededor.

Tuve problemas con la tarea de Fabrics crashlyticsUploadDistributionRelease , dándome la misma traza de pila que la anterior. Lo arreglé estableciendo explícitamente la propiedad de ruta de archivo de salida en app/build.gradle :

ext.betaDistributionApkFilePath = "app/build/outputs/apk/release/app-release.apk"

  • AppCompat v7 r21 devolviendo error en values.xml?
  • Android Studio 2.1.2 y Android 6: Error al instalar parches de reinicio
  • Inhabilitar la visualización de la ventana de ejecución en IntelliJ
  • No se puede crear Debug Bridge No se puede detectar la versión de adb. Error de sintaxis: ")" Actualización de Platform-tools 23.0.1 a 23.1.0 Linux-32 bits causa problema
  • ¿Cómo importar ZXING a android studio?
  • Android Studio y ProGuard: no se puede resolver el símbolo getDefaultProguardFile?
  • Versión no compatible de major.minor 52.0 al renderizar en Android Studio
  • Cómo cambiar el nombre de los archivos en Android Studio
  • El estudio de Android no genera apk firmado
  • Android Studio no genera apk firmado después de la actualización a 2.3
  • Diccionario de palabras clave para Android - revisión ortográfica - Android Studio
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.