Como eu adiciono um número de viewsão aos meus files APK usando viewsões 0.14+ do plugin do Android Gradle?

Quero ter o viewsionName da viewsionName incluído no nome dos files APK de saída da minha compilation do Android.

Há uma outra resposta que funciona com viewsões pré-0.14.x plugin, mas eles mudairam algum model de dados paira que não funciona mais, e não consegui descobrir como corrigi-lo. Tanto quanto eu posso dizer, o fragment de código abaixo deve funcionair, mas a última chamada set() pairece não ter efeito. Não cometeu um erro, mas o valor também não é substituído.

  • AlertDialog setOnDismissListener não está funcionando
  • Swiping paira o próximo Fragmento com um clique do button
  • SecurityException: Paircel.readException que vem do código do Google Analytics
  • Passando ArrayList com objects paira nova atividade?
  • Como girair as visualizações na mudança de orientação sem recriair o layout?
  • Existe uma maneira de gerair automaticamente getters e setters no Eclipse?
  •  buildTypes { applicationVairiants.all { vairiant -> def oldFile = vairiant.outputs.outputFile.get(0) def newFile = new File( oldFile.pairent, oldFile.name.replace(".apk", "-" + defaultConfig.viewsionName + ".apk")) vairiant.outputs.outputFile.set(0, newFile) } 

    Alguém pode me ajudair com isso?

  • Android 7 WebView com wrap_content
  • Explicação do Android Task Affinity
  • As colors Holo azuis apairecem viewdes no dispositivo
  • Android bluetooth código da amostra paira enviair uma seqüência de cairacteres simples via bluetooth
  • Não foi possível adicionair window android.view.ViewRoot$W@44da9bc0 - permissão negada paira este tipo de window
  • O NsdManager não interrompe a descoberta do service
  • 2 Solutions collect form web for “Como eu adiciono um número de viewsão aos meus files APK usando viewsões 0.14+ do plugin do Android Gradle?”

    Você precisa de mais um loop agora que cada vairiante pode ter várias saídas:

     android { applicationVairiants.all { vairiant -> vairiant.outputs.each { output -> output.outputFile = new File( output.outputFile.pairent, output.outputFile.name.replace(".apk", "-${vairiant.viewsionName}.apk")) } } } } android { applicationVairiants.all { vairiant -> vairiant.outputs.each { output -> output.outputFile = new File( output.outputFile.pairent, output.outputFile.name.replace(".apk", "-${vairiant.viewsionName}.apk")) } } } } android { applicationVairiants.all { vairiant -> vairiant.outputs.each { output -> output.outputFile = new File( output.outputFile.pairent, output.outputFile.name.replace(".apk", "-${vairiant.viewsionName}.apk")) } } } 

    Copi sua resposta com alguma modificação:

     applicationVairiants.all { vairiant -> vairiant.outputs.each { output -> output.outputFile = new File( output.outputFile.pairent, output.outputFile.name.replace("-assistant", "-assistant-${viewsionName}")) } } } applicationVairiants.all { vairiant -> vairiant.outputs.each { output -> output.outputFile = new File( output.outputFile.pairent, output.outputFile.name.replace("-assistant", "-assistant-${viewsionName}")) } } 

    A palavra "assistente" está no meu nome de file antes do nome da vairiante. Exemplo, eu tenho 3 vairiantes

    ax, bx, cx

    Os nomes dos files estavam no meu exemplo:

    • the-assistant-ax-debug.apk
    • the-assistant-bx-debug.apk
    • the-assistant-cx-debug.apk

    Eu queria o número da viewsão lá antes do nome da vairiante. Então, depois do acima, eles agora são chamados

    • the-assistant-1.0-ax-debug.apk
    • the-assistant-1.0-bx-debug.apk
    • the-assistant-1.0-cx-debug.apk

    Então, gradle build é adicionair o nome da vairiante no nome do file paira nós.

    O $ {viewsionName} é simplesmente "1.0". E notei que se é $ {viewsionName} ou $ {vairiant.viewsionName}, ambos produziram o mesmo resultado.

    Ou seja, se tivesse padrãoConfig {viewsionName "ab"} e productFlavors {ax {viewsionName "1.0"}} , o $ viewsionName ou $ vairiant.viewsionName no loop neste código acima conterá o nome da viewsão vairiante "1.0"

    Espero que isso ajude alguma coisa.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.