Не удалось найти свойство 'outputFile' на com.android.build.gradle.internal.api.ApplicationVariantImpl

После обновления до версии 1.0 RC 1 и плагина 0.14.4 у меня возникают проблемы с переименованием части моего build.gradle:

applicationVariants.all { variant -> def file = variant.outputFile variant.outputFile = new File(file.parent, file.name.replace(".apk", "-" + defaultConfig.versionName + ".apk")) } 

Бросает сейчас:

 Error:(78, 0) Could not find property 'outputFile' on com.android.build.gradle.internal.api.ApplicationVariantImpl_Decorated@67e7625f. 

А также я не могу перейти к классу ApplicationVariantImpl, чтобы посмотреть, как свойство могло быть переименовано. Кто-нибудь знает обходные пути для этого?

Solutions Collecting From Web of "Не удалось найти свойство 'outputFile' на com.android.build.gradle.internal.api.ApplicationVariantImpl"

попробуй это

 applicationVariants.all { variant -> variant.outputs.each { output -> def file = output.outputFile output.outputFile = new File(file.parent, file.name.replace(".apk", "-" + defaultConfig.versionName + ".apk")) } } 

Более всесторонне:

 applicationVariants.all { variant -> variant.outputs.each { output -> output.outputFile = new File(output.outputFile.parent, output.outputFile.name.replace(".apk", "-" + defaultConfig.versionName + ".apk")) } } 

Это может произойти по нескольким причинам:

1.) Сначала, как было сказано ранее Халидовым , попробуйте

 applicationVariants.all { variant -> variant.outputs.each { output -> output.outputFile = ... } } 

2.) Вторая попытка обновить все другие плагины.

Например, я получил эту проблему для Spoon , которая была решена с помощью обновления Spoon до:

 classpath 'com.stanfy.spoon:spoon-gradle-plugin:0.14.1' 

Или там, где есть только один вариант:

 def apk = outputs[0].outputFile 

Вместо

 def apk = variant.outputFile 

Удостоверьтесь, что вы запустили последнюю версию градиента (а не плагин, опустите его самостоятельно).

Проверьте свои параметры gradle-wrapper.properties . Вы используете gradle 2.1?

Дополнительная информация о совместимости: http://tools.android.com/tech-docs/new-build-system/version-compatibility

Мне удалось решить следующее:

старый:

 buildTypes { libertação { runProguard false // esta linha tem que ser mudado proguardFiles getDefaultProguardFile ( 'android.txt proguard-' ), 'proguard-rules.pro' } 

}

новые:

 buildTypes { libertação { minifyEnabled false // nova versão proguardFiles getDefaultProguardFile ( 'android.txt proguard-' ), 'proguard-rules.pro' } 

}

Отредактированный в файле buil.gradle вашего проекта, как описано в этом сообщении ruan65 Ошибка: (26, 0) Метод Gradle DSL не найден: 'runProguard ()'

И после редактирования тоже эта строка:

 applicationVariants . all { variant -> variant . outputs . each { output -> def file = output . outputFile output . outputFile = new File ( file . parent , file . name . replace ( ".apk" , "-" + defaultConfig . versionName + ".apk" )) } 

}

Как было сказано там. Это успокоило меня!