Gradle构建顺序

时间:2014-08-19 10:34:44

标签: android gradle dependencies build-process libraries

我有一个使用android库的项目。

图书馆A取决于图书馆C.

当构建任务启动时,它始终在compileDebugJava中失败,因为库A需要库C的资源。

错误:包com.mypackage.libraryC.R不存在

Gradle使用字母顺序运行构建任务。

如何在该场景中更改构建顺序?

我需要先为库C构建所有任务,然后开始构建库A(库A应该看到库C R.class。

感谢。

gradle错误堆栈跟踪:

:liraryC:processReleaseJavaRes
:libraryC:packageReleaseJar
:libraryC:compileReleaseNdk
:libraryC:packageReleaseJniLibs UP-TO-DATE
:libraryC:packageReleaseLocalJar
:libraryC:packageReleaseRenderscript UP-TO-DATE
:libraryC:bundleRelease
:libraryC:prepareLibrary
:libraryA:prepareDebugDependencies
:libraryA:compileDebugAidl
:libraryA:compileDebugRenderscript
:libraryA:generateDebugBuildConfig
:libraryA:mergeDebugAssets
:libraryA:generateDebugResValues UP-TO-DATE
:libraryA:generateDebugResources
:libraryA:mergeDebugResources
:libraryA:processDebugManifest
:libraryA:processDebugResources
:libraryA:generateDebugSources
libraryA:compileDebugJava

 error: package com.mypackage.libraryC.R does not exist

Library A build.gradle:

apply plugin: 'android-library'

dependencies {
  compile project(':LibraryC')
}

Library C build.gradle:

apply plugin: 'android-library'

dependencies {
// other dependencies
}

1 个答案:

答案 0 :(得分:0)

自从我使用gradle以来已经有很长一段时间了但是如果我记得正确的话,如果依赖关系在gradle文件中正确表达,它应该以正确的顺序构建。

您应该将C的依赖项放在库A的gradle文件中。