Android con Gradle Release plugin

Voglio utilizzare il plugin di rilascio di Gradle nel Android Project .

L'ho configurato e tutto va bene, tranne una cosa:

  • Aggiungere ombra sul lato destro e inferiore del layout
  • Comprensione del setRetainInstance del frammento (boolean)
  • Come rilevare se Google Play è installato? (Non mercato)
  • Due lanciatori per una singola attività
  • Come scegliere una risoluzione dell'image da mostrare a schermo integer?
  • Divisore di ListView Android
  • Gradle Release Plugin cambia la versione di progetto nel file gradle.properties in una delle sue attività, ma questa modifica non influenza la versione di Android Project's , in quanto, come ho trovato, con l'utilizzo di println() gradi l'initialization prima di eseguire qualsiasi attività.

    C'è un modo per modificare il nome di versione di Android Project in qualche task di gradle dopo che è stato inizializzato?

    Ecco una parte del mio build.gradle

     android { compileSdkVersion 19 buildToolsVersion '19.1.0' defaultConfig { minSdkVersion 14 targetSdkVersion 19 versionCode 213 versionName version // to change it, please visit gradle.properties file println('Project version: ' + version) // this line executed BEFORE any gradle task :( } ... } 

    Posso vedere solo una soluzione: esecuzioni diverse gradel

    1. Cambierà la versione in gradle.properties
    2. Esegue il process di build, ma questo è un problema di soluzione particolarmente per il Gradle Release Plugin

  • Distriggers il button Home
  • Qual è la dimensione massima per un valore di preferenza condivisa Android?
  • Come aggiungere il titolo nel layout del cassetto di navigazione?
  • Studio Android non viene eseguito
  • Android AsyncTask non restituisce il risultato corretto
  • java.net.UnknownHostException: Imansible risolvere l'host "<url>": Nessun indirizzo associato con hostname e Fine di input al carattere 0 di
  • 3 Solutions collect form web for “Android con Gradle Release plugin”

    Dalla versione 2.1.0 il plugin di rilascio gradle sta eseguendo la build in un process separato. Ciò garantisce che la versione sia corretta durante il process di generazione e per tutti gli altri plugin che si affidano alla versione impostata dall'inizio.

    2.1.0

    COMUNE: Rifattura il process di generazione durante il rilascio per eseguire in un process separato. Ciò auspicherà risolvere tutti i problemi con alcuni altri plugin come il nuovo maven-publish o il plugin bintray.

    COMUNE: Aggiunto prima il hookReleaseBuild e afterReleaseBuild, entrambi eseguiti nello stesso process della build stessa.

    vedere il changelog completo

    Inserire queste funzioni nel build.gradle

     task('increaseVersionCode') << { def manifestFile = file("src/main/AndroidManifest.xml") def pattern = Pattern.compile("versionCode=\"(\\d+)\"") def manifestText = manifestFile.getText() def matcher = pattern.matcher(manifestText) matcher.find() def versionCode = Integer.parseInt(matcher.group(1)) def manifestContent = matcher.replaceAll("versionCode=\"" + ++versionCode + "\"") manifestFile.write(manifestContent) } task('incrementVersionName') << { def manifestFile = file("src/main/AndroidManifest.xml") def patternVersionNumber = Pattern.compile("versionName=\"(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+)\"") def manifestText = manifestFile.getText() def matcherVersionNumber = patternVersionNumber.matcher(manifestText) matcherVersionNumber.find() def majorVersion = Integer.parseInt(matcherVersionNumber.group(1)) def minorVersion = Integer.parseInt(matcherVersionNumber.group(2)) def pointVersion = Integer.parseInt(matcherVersionNumber.group(3)) def buildVersion = Integer.parseInt(matcherVersionNumber.group(4)) def mNextVersionName = majorVersion + "." + minorVersion + "." + pointVersion + "." + (buildVersion + 1) def manifestContent = matcherVersionNumber.replaceAll("versionName=\"" + mNextVersionName + "\"") manifestFile.write(manifestContent) } tasks.whenTaskAdded { task -> if (task.name == 'generateReleaseBuildConfig') { task.dependsOn 'increaseVersionCode' task.dependsOn 'incrementVersionName' } } 

    Disclaimer: Ho creato questo aspetto.

    Il concetto completo. https://gist.github.com/ascariandrea/9991499

    Ecco una soluzione che ho usato che divide l'esecuzione di attività in esecuzioni a più gradi. Funziona per svn ma può essere adattato:

    https://stackoverflow.com/a/26659974/256770

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.