web-dev-qa-db-de.com

Die Eigenschaft 'outputFile' wurde auf com.Android.build.gradle.internal.api.ApplicationVariantImpl nicht gefunden

Nach dem Update auf AS 1.0 RC 1 und Plugin 0.14.4 habe ich Probleme mit dem Umbenennungsteil meines build.gradle:

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

wirft jetzt:

Error:(78, 0) Could not find property 'outputFile' on com.And[email protected]67e7625f.

ich kann auch nicht zur Klasse ApplicationVariantImpl springen, um zu sehen, wie die Eigenschaft möglicherweise umbenannt wurde. Jeder kennt Abhilfe dafür?

48
ligi

versuche dies

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

Umfassender:

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

Dies kann aus wenigen Gründen auftreten:

1.) Zuerst wie von @Khalidov gesagt, probiere es aus

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

2.) Beim zweiten Update alle anderen Plugins aktualisieren. 

Zum Beispiel habe ich dieses Problem für Spoon bekommen, das durch Update Spoon gelöst wurde: 

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

Oder wo es nur eine Variante gibt:

def apk = outputs[0].outputFile

Anstatt

def apk = variant.outputFile
5
Ollie C

Stellen Sie sicher, dass Sie die neueste Gradle-Version ausführen (nicht das Plugin, sondern selbst).

Überprüfen Sie Ihren gradle-wrapper.properties. Laufen Sie gradle 2.1?

Weitere Informationen zur Kompatibilität: http://tools.Android.com/tech-docs/new-build-system/version-compatibility

1
Pedro Loureiro

Ich habe es wie folgt geschafft:

alt:

buildTypes { 
libertação {

    runProguard false  // esta linha tem que ser mudado

    proguardFiles getDefaultProguardFile ( 'Android.txt proguard-' ),  'proguard-rules.pro' 
} 

}

neu:

buildTypes { 
libertação {

    minifyEnabled false  // nova versão

    proguardFiles getDefaultProguardFile ( 'Android.txt proguard-' ),  'proguard-rules.pro' 
} 

}

bearbeitet in der Datei buil.gradle Ihres Projekts wie in diesem Beitrag beschrieben von ruan65 Fehler: (26, 0) DSL-Methode von Gradle nicht gefunden: 'runProguard ()'

und nach editieren auch diese Zeile:

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

}

wie es dort oben gesagt wurde ... Das hat mich erledigt!

0
Williaan Lopes