2014-12-31 108 views
4

以下任務(在一個應用程序的模塊的build.gradle)似乎APK產生之前始終運行:如何在Android Studio中生成apks後運行Gradle任務?

android.applicationVariants.all { variant -> 
    if (variant.buildType.name == 'release') { 
      def releaseBuildTask = tasks.create(name: "debug") { 
      println(".................... test ..............................") 
     } 
     releaseBuildTask.mustRunAfter variant.assemble 
    } 
} 

任何人都可以提供如何運行任務的尖端的APK後產生?

回答

8

嘗試在你app/build.gradle

assembleDebug.doLast { 
    android.applicationVariants.all { variant -> 
     if (variant.buildType.name == 'release') { 
      def releaseBuildTask = tasks.create(name: "debug") { 
       println(".................... test ..............................") 
      } 
      releaseBuildTask.mustRunAfter variant.assemble 
     } 
    } 
    println "build finished" 
} 

添加此調用構建命令,並指定assembleDebug

./gradlew assembleDebug

+0

感謝很多答案。我昨天從Eclipse遷移到了Android Studio。差異非常顯着。 – Hong

4

Android的任務通常創建任務在 「afterEvaluate」 階段。 的gradle從2.2開始,這些任務還包括 「assembleDebug」 和 「assembleRelease」。要訪問等任務,用戶將需要使用 afterEvaluate關閉:

afterEvaluate { assembleDebug.dependsOn someTask }

來源:https://code.google.com/p/android/issues/detail?id=219732#c32

2

我發現這樣的作品,以釋放APK複製到項目的根目錄的解決方案自動完成構建。

android { 
     ... 
     task copyReleaseApk(type: Copy) { 
      from 'build/outputs/apk' 
      into '..' // Into the project root, one level above the app folder 
      include '**/*release.apk' 
     } 

     afterEvaluate { 
      packageRelease.finalizedBy(copyReleaseApk) 
     } 
} 
相關問題