Android gradle项目在另一个目录树中编译项目

时间:2013-06-05 13:58:10

标签: android actionbarsherlock gradle

我有一个像这样的项目布局:

MyProject/
    Project/
        build.gradle
    build.gradle
    settings.gradle
thirdparty/
    ActionBarSherlock/
        actionbarsherlock/
            build.gradle
        build.gradle
        settings.gradle

ActionBarSherlock目录是一个git子模块,指向ActionBarSherlock的dev分支,其中包含gradle构建文件。

MyProject/settings.gradle我添加了:

include '..:thirdparty:ActionBarSherlock:actionbar'

并在MyProject/build.gradle添加:

compile '..:thirdparty:ActionBarSherlock:actionbar'

dependencies部分。当我使用MyProject/Project构建gradle assemble时,出现以下错误:

> Project with path '..:thirdparty:ActionBarSherlock:actionbar' could not be found in project ':MyProject'

我可以使用:

分别构建ActionBarSherlock
cd thirdparty/ActionBarSherlock/actionbarsherlock
gradle assemble
cp build/libs/actionbarsherlock-4.3.2-SNAPSHOT.aar ../../../MyProject/Project/libs

然后在dependencies的{​​{1}}部分中将其用作:

MyProject/build.gradle

现在,当我构建compile files('libs/actionbarsherlock-4.3.2-SNAPSHOT.aar') 时,我收到以下错误:

MyProject/Project

1 个答案:

答案 0 :(得分:2)

这个google小组得到了Android SDK开发人员Xavier Ducrohet的回答。 https://groups.google.com/forum/#!topic/adt-dev/bPY_Un8BsBY

引用:

  

依赖于主项目之外的gradle项目   根文件夹,您可以尝试执行以下操作:

     

包括'abs'

     

project(':abs')。projectDir = new File('/ some / path / relative / or / absolute')

     

请注意,您的应用应该使用项目(':abs')进行依赖,因为   gradle路径是:abs,无论磁盘路径是什么。