2014-05-16 14 views
10

Desidero rinominare il mio apk da gradle. Ho le seguenti righe all'interno della buildrinomina apk in gradle

applicationVariants.all { variant ->  
      def file = variant.outputFile 
      def filename = file.name.replace("SomeXXX", "SomeYYY") 
      variant.outputFile = new File(file.parent, filename) 

        } 

Questo rinomina correttamente gli apk ma non gli apri non allineati. Per favore qualcuno faccia un po 'di luce su questo.

+0

Probabilmente 'applicationVariants' doesn' t conservare informazioni su varianti non allineate. Ma AFAIK è abbastanza facile trovare una variante non allineata quando conosci il nome della variante. – Opal

+2

correlati: http://stackoverflow.com/questions/16787493/android-gradle-build-renaming-the-apk/16794456#16794456 – ben75

risposta

16

Il plugin Gradle è andato avanti da quando hai postato questo, tuttavia per ottenere questo a lavorare su con il plugin corrente (v1.0.0), è possibile utilizzare il seguente: -

variant.outputs.each { output -> 
     def alignedOutputFile = output.outputFile 
     def unalignedOutputFile = output.packageApplication.outputFile 

     // Customise APK filenames (to include build version) 
     if (variant.buildType.zipAlignEnabled) { 
      // normal APK 
      output.outputFile = new File(alignedOutputFile.parent, alignedOutputFile.name.replace(".apk", "-" + defaultConfig.versionName + "-" + defaultConfig.versionCode + ".apk")) 
     } 
     // 'unaligned' APK 
     output.packageApplication.outputFile = new File(unalignedOutputFile.parent, unalignedOutputFile.name.replace(".apk", "-" + defaultConfig.versionName + "-" + defaultConfig.versionCode + ".apk")) 
    } 
+0

Grazie per la risposta. Ma dove finisce lo snippet sopra? Quando lo inserisco in Android {...} nel mio file build.gradle ottengo un Impossibile risolvere il simbolo "variant" - in esecuzione gradle 2.2.1 e Android Studio 1.0.2 – AgentKnopf

+3

@Zainodis che dovrebbe andare nella sezione buildTypes. – karl

+0

@karl grazie mille per il tuo commento! Nel frattempo mi sono reso conto che l'editor gradle in Android Studio non è ancora finito, ecco perché la variabile variant non può essere risolta. – AgentKnopf