używałem tego kodu
applicationVariants.all { variant ->
variant.outputs.each { output ->
def SEP = "_"
def flavor = variant.productFlavors[0].name
def buildType =
variant.variantData.variantConfiguration.buildType.name
def version = variant.versionName
def date = new Date()
def formattedDate = date.format('ddMMyy_HHmm')
def newApkName = PROJECT_NAME + SEP + flavor + SEP + buildType + SEP + version + SEP + formattedDate + ".apk"
def file = new File(newApkName)
output.outputFile = file
}
}
aby zmienić nazwę pliku apk podczas tworzenia nowego apk, ale ponieważ używam Android Studio 3.0 Canary 2 pojawia się ten błąd:
Nie można ustawić wartości właściwości tylko do odczytu „outputFile” ....
android-studio
android-gradle-plugin
Mohamd Ali
źródło
źródło
Odpowiedzi:
Jak sugeruje przewodnik migracji wtyczki Android 3.0 :
all()
zamiasteach()
outputFileName
zamiast,output.outputFile
jeśli zmieniasz tylko nazwę pliku (tak jest w twoim przypadku)Przykład z przewodnika:
źródło
Zobacz poniżej:
źródło
Poniższy kod działa u mnie na Android Studio Canary 3.0.0-alpha3
To zmienia nazwę pliku apk
źródło
To jest kompletny przykład tego pytania.
Tylko ty musisz wkleić w swoim gradle 3.0+ po productFlavours
źródło
Założyłem Gradle 3.0 to już nie działa. łącze źródłowe
następnie użyłem polecenia
gradlew
do skompilowania projektucp
i pliku wyjściowego apk do mojej określonej ścieżkiW powłoce Execute umieściłem poniższe polecenie.
źródło
Miałem ten sam problem. Błąd „Nie można ustawić wartości właściwości tylko do odczytu„ outputFile ”....” „
Więc zmieniłem wersję repozytorium wtyczek Androida na 2.3.3 w oknie Struktura projektu. Teraz działa i błąd zniknął.
Struktura projektu
Później wyczyść i odbuduj dla projektu i to wszystko
Mam nadzieję, że to byłoby pomocne dla Ciebie.
źródło
Minęło półtora roku od zadania pytania, ale może to pomoże komuś (takiemu jak ja), kto pierwszy odkryje ten post. Myślę, że odpowiedź na zmianę nazwy pliku i katalogu została udzielona tutaj .
źródło
Po aktualizacji do Android Studio 3.0.0 i korzystaniu z nowego gradle, wyjście apków będzie teraz dystrybuowane w katalogach według nazw smaków i typów kompilacji.
źródło