2014-09-25 16 views
5

Sto cercando di personalizzare il comportamento della mia build Gradle per essere compatibile con Android-Wear.Gradle Android - Esegui l'override delle attività standard

Sto impacchettando manualmente il mio apk di usura nel mio apk gestito (perché non sono riuscito a farlo automaticamente).

Ciò significa che se voglio creare una nuova versione dell'apk gestito, devo creare manualmente il mio apk di usura, copiare/incollare l'antifurto generato insinde il mio res/raw del progetto gestito quindi creare il nuovo maneggiato apk.

Voglio che tutto questo sia automatizzato.

Allora, che cosa devo fare è:

  1. lancio app: assembleRelease dalla linea di cmd
  2. Gradle prima fare un usura: assembleRelease
  3. Alla fine, Gradle prendere l'apk da wear/output/apk/wear-apk.apk e copiarlo in app/src/main/res/raw
  4. Poi Gradle può procederà a fare app: assembleRelease

Non trovo come avviare un'attività (wear: assembleRelease) da un'altra attività.

Qualsiasi aiuto è benvenuto!

risposta

4

Ho trovato una soluzione che potrebbe non essere ottimale ma funziona per quello di cui ho bisogno.

Nella mia app manipolati, devo prima a dire che l'assembleRelease dipende dal mio usura: assembleRelease:

app/build.gradle

project.afterEvaluate { 
    preReleaseBuild.dependsOn(':wear:assembleRelease') 
} 

preReleaseBuild è uno dei primi compiti del build ma questa attività viene creata dinamicamente, ecco perché è necessario avvolgerla dopo la valutazione del progetto.

Poi, nel mio usura build.gradle, devo specificare la copia alla fine della compilazione:

usura/build.gradle

assembleRelease << { 
    println "Copying the Wear APK" 
    copy { 
     from 'build/outputs/apk' 
     into '../app/src/main/assets' 
     include '**/wear-release.apk' 
    } 
} 

Con tesi solo modificazioni, sono riuscito ad avere la flusso di lavoro spiegato nella domanda.

Questo potrebbe essere migliorato perché funziona solo per la versione di rilascio ma è un buon primo passo.

Sentitevi liberi di commentare questa soluzione.

Problemi correlati