2014-09-25 72 views
5

我正在尝试自定义我的Gradle构建的行为,以便Android-Wear友好。Gradle Android - 覆盖标准任务

我手动捆绑我的穿着apk在我处理的apk中(因为我没有设法做到这一点automagically)。

这意味着如果我想构建一个新版本的处理apk,我必须手动构建我的磨损apk,复制/生成已处理项目的生成磨损 - apk内置我的res/raw,然后构建新处理apk。

我想这一切都被自动化。

所以,我需要做的是:

  1. 启动应用:assembleRelease从CMD线
  2. 摇篮先做磨损:assembleRelease
  3. 最后,摇篮采取APK从wear/output/apk/wear-apk.apk和复制它在app/src/main/res/raw
  4. 然后摇篮PROCEDE可以做应用: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' 
    } 
} 

由于只有论文的修改,我设法有工作流程在问题中解释。

这可以被增强,因为它只为发布版本工作,但这是一个很好的第一步。

随意评论这个解决方案。