2017-10-26 11 views
16

używałem następujący kod w moim Gradle skryptu do zmiany nazw plików APK wygenerowanych z AndroidStudio:Nie można ustawić wartość odczytu tylko własności „outputfile” dla ApkVariantOutputImpl_Decorated

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

Tak było generowanie APKs o nazwach takich jak : 345-app-release.apk, gdzie 345 to wersjaCode.

Ale po aktualizacji do AndroidStudio 3.0 zwraca następujący błąd:

Cannot set the value of read-only property 'outputFile' for ApkVariantOutputImpl_Decorated{apkData=Main{type=MAIN, fullName=debug, filters=[]}} of type com.android.build.gradle.internal.api.ApkVariantOutputImpl.

Jak mogę osiągnąć podobną zmianę nazwy z nowymi narzędziami budowania.

Odpowiedz

46

Zastosowanie output.outputFileName zamiast output.outputFile

+1

Powstał błąd potem ja potrzebne do rozwiązania go jak tutaj: https://stackoverflow.com/a/46959050/2061089 – oli

10

rozwiązanie dla Studio 3.0+ i Gradle 3.0+

Aby zmienić nazwę pliku APK na Androida

applicationVariants.all { variant -> 
    variant.outputs.each { output -> 
     output.outputFileName = new File(output.outputFile.parent, output.outputFile.name.replace("app-release.apk", "Your_name.apk")) 
    } 
} 
Powiązane problemy