2014-09-25 2 views
5

Я пытаюсь настроить поведение моей сборки Gradle как Android-Wear.Gradle Android - переопределить стандартные задачи

Я связываю вручную свою одежду apk в моем обработанном apk (потому что я не смог сделать это автоматически).

Это означает, что если я хочу построить новую версию обработанного apk, я должен вручную создать свой износ apk, скопировать/прогнать из сгенерированного ношения apk insinde my res/raw обработанного проекта, а затем построить новый обработанный apk.

Я хочу, чтобы все это было автоматизировано.

Итак, что мне нужно сделать, это:

  1. Запуск приложения: assembleRelease из CMD линии
  2. Gradle первым сделать износ: assembleRelease
  3. В конце концов, Gradle взять APK из wear/output/apk/wear-apk.apk и скопировать его в app/src/main/res/raw
  4. Тогда Gradle можно переходить сделать приложение: assembleRelease

Я не нахожу, как запустить задачу (wear: assembleRelease) из другой задачи.

Любая помощь приветствуется!

ответ

4

Я нашел решение, которое может быть не оптимальным, но оно работает для того, что мне нужно.

В моем перекачиваемом приложении, я первым должен сказать, что assembleRelease зависит от моего износа: assembleRelease:

приложения/build.gradle

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

preReleaseBuild является одним из самых первых задач но эта задача создается динамически, поэтому ее нужно обернуть после оценки проекта.

Тогда в моем износом build.gradle, я должен указать копию в конце сборки:

одежда/build.gradle

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

С только тезисы изменений, я сумел иметь рабочий процесс объясняется в вопросе.

Это может быть улучшено, потому что оно работает только для сборки релиза, но это хороший первый шаг.

Оставьте комментарий прокомментируйте это решение.

Смежные вопросы