【问题标题】:Android gradle project compiling project in a different directory treeAndroid gradle项目在不同的目录树中编译项目
【发布时间】:2013-06-05 13:58:10
【问题描述】:

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

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 部分。当我使用gradle assemble 构建MyProject/Project 时,出现以下错误:

> 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

然后在MyProject/build.gradledependencies部分中使用它作为:

compile files('libs/actionbarsherlock-4.3.2-SNAPSHOT.aar')

现在,当我构建 MyProject/Project 时,我收到以下错误:

> Duplicate files at the same path inside the APK: AndroidManifest.xml

【问题讨论】:

    标签: android actionbarsherlock gradle


    【解决方案1】:

    这个谷歌小组有一个来自 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')

    请注意,您的应用应该使用 project(':abs') 来建立依赖关系,因为 无论磁盘路径是什么,gradle 路径都是 :abs。

    【讨论】:

    • 能否粘贴生成的 gradle 部分?我无法让它工作。
    • 什么是“腹肌”?有一个完整的答案会有所帮助
    • 在这种特殊情况下,“abs”代表 ActionBarSherlock。更具体地说,此代码中的“abs”是包含 ActionBarSherlock 代码的 gradle 模块。
    • 这为我指明了正确的方向。我写了一套更详细的说明in this Gist
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-22
    • 2015-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-16
    相关资源
    最近更新 更多