Après la mise à jour vers AS 1.0 RC 1 et le plug-in 0.14.4, je rencontre des problèmes pour renommer une partie de mon build.gradle:
applicationVariants.all { variant ->
def file = variant.outputFile
variant.outputFile = new File(file.parent, file.name.replace(".apk", "-" + defaultConfig.versionName + ".apk"))
}
jette maintenant:
Error:(78, 0) Could not find property 'outputFile' on com.Android.build.gradle.internal.api.ApplicationVariantImpl_Decorated@67e7625f.
de plus, je ne peux pas accéder à la classe ApplicationVariantImpl pour voir comment la propriété a pu être renommée. Quelqu'un connaît les solutions de contournement?
essaye ça
applicationVariants.all { variant ->
variant.outputs.each { output ->
def file = output.outputFile
output.outputFile = new File(file.parent, file.name.replace(".apk", "-" + defaultConfig.versionName + ".apk"))
}
}
De manière plus complète:
applicationVariants.all { variant ->
variant.outputs.each { output ->
output.outputFile = new File(output.outputFile.parent, output.outputFile.name.replace(".apk", "-" + defaultConfig.versionName + ".apk"))
}
}
Cela peut se produire pour plusieurs raisons:
1.) D'abord comme l'a dit @Khalidov , essayez
applicationVariants.all { variant ->
variant.outputs.each { output ->
output.outputFile = ...
}
}
2.) Deuxième essai, mettez à jour tous les autres plugins.
Par exemple, j'ai eu ce problème pour Spoon , résolu par la mise à jour Spoon jusqu'à:
classpath 'com.stanfy.spoon:spoon-gradle-plugin:0.14.1'
Ou s'il n'y a qu'une seule variante:
def apk = outputs[0].outputFile
Au lieu de
def apk = variant.outputFile
Assurez-vous d’exécuter la dernière version de Gradle (pas le plugin, changez-le vous-même).
Vérifiez votre gradle-wrapper.properties
. Êtes-vous en cours d'exécution grade 2.1?
Plus d'informations sur la compatibilité: http://tools.Android.com/tech-docs/new-build-system/version-compatibility
J'ai réussi à résoudre comme suit:
vieux:
buildTypes {
libertação {
runProguard false // esta linha tem que ser mudado
proguardFiles getDefaultProguardFile ( 'Android.txt proguard-' ), 'proguard-rules.pro'
}
}
nouveau:
buildTypes {
libertação {
minifyEnabled false // nova versão
proguardFiles getDefaultProguardFile ( 'Android.txt proguard-' ), 'proguard-rules.pro'
}
}
édité dans le fichier buil.gradle de votre projet comme décrit dans ce message de ruan65 Erreur: (26, 0) Méthode DSL de Gradle introuvable: 'runProguard ()'
et après édition aussi cette ligne:
applicationVariants . all { variant ->
variant . outputs . each { output ->
def file = output . outputFile
output . outputFile = new File ( file . parent , file . name . replace ( ".apk" , "-" + defaultConfig . versionName + ".apk" ))
}
}
comme il a été dit là-haut… .. Cela m'a réglé!