2016-04-19 11 views
1

Ich meine apk-Datei mit folgenden Code Umbenennung:Android: Gradle berechnet falsch apk Name

applicationVariants.all { variant -> 
      android.defaultConfig.versionName = variant.mergedFlavor.versionName; 
      renameAPK(variant, defaultConfig) 
     } 

def renameAPK(variant, defaultConfig) { 
    variant.outputs.each { output -> 
     def formattedDate = new Date().format('ddMMMyy') 
     def applicationName = "Myapp" 


     def alignedFile = output.outputFile 
     def unalignedFile = output.packageApplication.outputFile 

     def fileName = applicationName + "_" + defaultConfig.versionName + "_" + variant.buildType.name + "_" + formattedDate 


     //If there's no ZipAlign task it means that our artifact will be unaligned and we need to mark it as such. 
     if (variant.buildType.zipAlignEnabled) { 
      fileName = fileName + ".apk" 
      output.outputFile = new File(alignedFile.parent, fileName) 
     } 
     fileName = fileName + "-unaligned.apk" 
     output.packageApplication.outputFile = new File(unalignedFile.parent, fileName) 


    } 

Dies funktioniert in den meisten Fällen gut. Aber gelegentlich, bekomme ich einen Fehler beim Versuch, die App auf einem Gerät zu installieren, die sagen:

Gradle in 1s 615ms 12.37.04 EmptyThrowable fertig bauen: Die APK Datei ./build/outputs/ apk/Myapp_4.0_debug_18Apr16.apk existiert nicht auf Diskette.

Das Problem ist, dass in solchen Fällen das von Gradle verwendete Datum falsch ist. Wenn ich gradle Skript von der Befehlszeile aus führe, erzeugt es eine apk mit korrektem Datum.

Allerdings, wenn ich "run" von Android Studio wählen, berechnet grandle falschen Dateinamen.

Ich habe versucht, Cache ungültig zu machen und Android Studio neu zu starten. Und auch, Reinigungsprojekt und Wiederaufbau. Nichts löst dieses Problem zu 100%.

Hat jemand anderes dies schon einmal erlebt?

+0

das ist gradle Glitch, nur reinigen Sie Ihr Projekt und neu starten Android Studio. Es wird alles gut funktionieren. Nun, es macht tausend Mal mit mir. –

Antwort

0

Zum Projektverzeichnis unter aap-Ordner die generierten Dateien löschen und die apk-Datei löschen, wenn Build vorhanden und laufen sehr gut again..hope das hilft

+0

Nein, derselbe Fehler. –

+0

Versuchen Sie, die Apk von Build in Android Studio zu bauen, lief ich in das gleiche Problem, das es gelöst – Haroon

0

Verwendung eines APK-Namen mit einem Zeitstempel oder dynamischen Zähler funktionieren nicht (abhängig von der Änderungsrate), da Android Studio den APK-Namen im Cache behält. Entweder AS führen eine veraltete Datei oder beschwerte sich über keine APK