首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Gradle模块和git子模块

Gradle模块和git子模块
EN

Stack Overflow用户
提问于 2014-08-07 23:17:37
回答 1查看 11.9K关注 0票数 12

我有一个名为toolkit的库项目,包含两个模块coredatabase,配置如下:

settings.gradle

代码语言:javascript
复制
include ':core'
include ':database' 

核心build.gradle

代码语言:javascript
复制
dependencies {
    compile 'com.android.support:support-v4:20.+'
    compile 'com.jakewharton:butterknife:5.1.+'
    compile 'com.google.code.gson:gson:2.2.+'
    compile 'uk.co.chrisjenx:calligraphy:0.7.+'
    compile files('libs/flurry-3.4.0.jar')
}

数据库build.gradle

代码语言:javascript
复制
dependencies {
    compile project(':core')
}

在这个库项目中运行我的测试是可以的,但是我想将这个库作为git子模块添加到其他项目中,这个项目有以下配置:

settings.gradle

代码语言:javascript
复制
include ':app-tablet'
include 'libraries:float-hint'
include 'libraries:toolkit:core'
include 'libraries:toolkit:database'
include 'libraries:twoway-view:TwoWayView'

应用程序build.gradle

代码语言:javascript
复制
dependencies {
    compile 'com.astuetz:pagerslidingtabstrip:1.0.1'
    compile 'com.google.android.gms:play-services:+'
    compile 'com.j256.ormlite:ormlite-android:4.48'
    compile 'com.jayway.android.robotium:robotium-solo:5.2.1@jar'
    compile 'com.squareup.dagger:dagger:1.2.+'
    compile 'com.squareup.picasso:picasso:2.1.1@jar'
    compile files('libs/YouTubeAndroidPlayerApi.jar')
    compile project(':libraries:float-hint')
    compile project(':libraries:porquenao-toolkit:core')
    compile project(':libraries:porquenao-toolkit:database')
    compile project(':libraries:twoway-view:TwoWayView')
}

当我尝试编译时,得到的结果如下:

代码语言:javascript
复制
$  gradlew assembleDebug -d

12:10:46.283 [ERROR] [org.gradle.BuildExceptionReporter] FAILURE: Build failed with an exception.
12:10:46.285 [ERROR] [org.gradle.BuildExceptionReporter] 
12:10:46.285 [ERROR] [org.gradle.BuildExceptionReporter] * Where:
12:10:46.285 [ERROR] [org.gradle.BuildExceptionReporter] Build file '/path/libraries/toolkit/database/build.gradle' line: 16
12:10:46.286 [ERROR] [org.gradle.BuildExceptionReporter] 
12:10:46.286 [ERROR] [org.gradle.BuildExceptionReporter] * What went wrong:
12:10:46.286 [ERROR] [org.gradle.BuildExceptionReporter] A problem occurred evaluating project ':libraries:toolkit:database'.
12:10:46.287 [ERROR] [org.gradle.BuildExceptionReporter] > Project with path ':core' could not be found in project ':libraries:toolkit:database'.
12:10:46.308 [ERROR] [org.gradle.BuildExceptionReporter]    ... more
12:10:46.308 [LIFECYCLE] [org.gradle.BuildResultLogger] 
12:10:46.308 [LIFECYCLE] [org.gradle.BuildResultLogger] BUILD FAILED

我知道问题出在路径:corelibraries:toolkit:core上,但是如何恰当地解决这个问题呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-26 07:59:32

你有一个命名问题,你的应用gradle文件。

settings.gradle具有:

include 'libraries:toolkit:core'

build.gradle有:

代码语言:javascript
复制
compile project(':libraries:porquenao-toolkit:core')

假设你解决了这个问题,你仍然会有一个错误。

数据库模块将尝试编译": core ",但当在应用程序中使用时,核心模块有一个不同的路径:“:libraries:porquenao toolkit:core”

解决这个问题的一种方法是将核心库作为": core“包含在两个项目中,但给它一个不同的项目路径。

您的settings.gradle文件将如下所示:

工具包:

代码语言:javascript
复制
include ':core'
project(':core').projectDir = new File(rootDir, 'core')

应用:

代码语言:javascript
复制
include ':core'
project(':core').projectDir = new File(rootDir, 'libraries/porquenao-toolkit/core')
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25186187

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档