No se pudo encontrar la propiedad ''outputFile'' en com.android.build.gradle.internal.api.ApplicationVariantImpl
android-studio android-gradle (6)
Asegúrese de ejecutar la última versión gradle (no el plugin, gradle it self).
Verifica tus gradle-wrapper.properties
. ¿Estás ejecutando gradle 2.1?
Más información sobre compatibilidad: http://tools.android.com/tech-docs/new-build-system/version-compatibility
Después de actualizar a AS 1.0 RC 1 y al plugin 0.14.4, tengo problemas con el cambio de nombre de mi build.gradle:
applicationVariants.all { variant ->
def file = variant.outputFile
variant.outputFile = new File(file.parent, file.name.replace(".apk", "-" + defaultConfig.versionName + ".apk"))
}
arroja ahora:
Error:(78, 0) Could not find property ''outputFile'' on com.android.build.gradle.internal.api.ApplicationVariantImpl_Decorated@67e7625f.
y tampoco puedo saltar a la clase ApplicationVariantImpl para ver cómo se podría haber cambiado el nombre de la propiedad. Alguien sabe soluciones para esto?
Esto puede ocurrir por algunas razones:
1.) Primero como se dijo antes por @Khalidov , prueba
applicationVariants.all { variant ->
variant.outputs.each { output ->
output.outputFile = ...
}
}
2.) Segundo intento actualizar todos los demás complementos.
Por ejemplo, recibí este problema para Spoon , que se resolvió mediante la actualización de Spoon hasta:
classpath ''com.stanfy.spoon:spoon-gradle-plugin:0.14.1''
Más comprensivamente:
applicationVariants.all { variant ->
variant.outputs.each { output ->
output.outputFile = new File(output.outputFile.parent, output.outputFile.name.replace(".apk", "-" + defaultConfig.versionName + ".apk"))
}
}
Me las arreglé para resolver de la siguiente manera:
antiguo:
buildTypes {
libertação {
runProguard false // esta linha tem que ser mudado
proguardFiles getDefaultProguardFile ( ''android.txt proguard-'' ), ''proguard-rules.pro''
}
}
nuevo:
buildTypes {
libertação {
minifyEnabled false // nova versão
proguardFiles getDefaultProguardFile ( ''android.txt proguard-'' ), ''proguard-rules.pro''
}
}
editado en el archivo buil.gradle de su proyecto como se describe en esta publicación por ruan65 Error: (26, 0) No se encontró el método Gradle DSL: ''runProguard ()''
y después de editar también esta línea:
applicationVariants . all { variant ->
variant . outputs . each { output ->
def file = output . outputFile
output . outputFile = new File ( file . parent , file . name . replace ( ".apk" , "-" + defaultConfig . versionName + ".apk" ))
}
}
como se dijo allí arriba. ¡Eso me tranquilizó!
O donde solo hay una variante:
def apk = outputs[0].outputFile
En lugar de
def apk = variant.outputFile
prueba esto
applicationVariants.all { variant ->
variant.outputs.each { output ->
def file = output.outputFile
output.outputFile = new File(file.parent, file.name.replace(".apk", "-" + defaultConfig.versionName + ".apk"))
}
}