我已将Android Studio项目导入为另一个项目的库。我原来的问题是here。它工作了一段时间,直到今天。今天我完成了我的库(在它自己的项目中)的更新并复制了新文件。我像以前一样编辑了settings.gradle
和build.gradle
文件但是我收到了错误:
Project with path 'Eed:libraries:Overt:Util' could not be found in project ':CES'.
图书馆的原始项目结构如下:
Overt/
+ Visible/
+ Control/
+ CES/
+ Util/
在该项目中,CES
取决于Util
dependencies {
compile 'com.android.support:appcompat-v7:19.+'
compile fileTree(dir: 'libs', include: ['*.jar'])
compile project(':Util')
}
当我复制新版Overt
时,我修改了项目级settings.gradle
和模块级build.gradle
。
结构:
Eed/
Eed/
libraries/
Overt/
+ Visible/
+ Control/
+ CES/
+ Util/
settings.gradle
include ':Eed'
include ':Eed:libraries:Overt:Visible'
include ':Eed:libraries:Overt:Control'
include ':Eed:libraries:Overt:Util'
include ':Eed:libraries:Overt:CES'
和build.gradle(Eed模块)
dependencies {
compile 'com.android.support:appcompat-v7:+'
compile fileTree(dir: 'libs', include: ['*.jar'])
compile project('libraries:Overt:Visible')
compile project('libraries:Overt:Control')
compile project('libraries:Overt:Util')
compile project('libraries:Overt:CES')
}
我曾在CES中修改build.gradle
,但无法找到解决方案。我做错了什么?
答案 0 :(得分:1)
如果您的 CES 项目仍然具有此依赖关系,那么它看起来很可疑:
compile project(':Util')
如果您的依赖关系语句使用与 settings.gradle 中显示的路径相同的路径,则效果最佳:
compile project(':Eed:libraries:Overt:Util')
我不知道你是否可以建立一个相对的Gradle项目路径来引用与引用项目处于同一级别的兄弟项目。我的意思是 CES 和 Util 都处于同一级别:Eed:libraries:Overt:
,你真正想要的是你在文件系统中可以做的事情../Util
的路径,但我不知道Gradle中是否有可能。
如果您希望您的复杂模块能够在某处导入并仍然保持与相对路径的模块关系,那么您可能会提出很多要求。话虽如此,如果它是一个公司要求,那么您可以通过projectDir
查看 settings.gradle 中的重新映射目录。如果您想要走这条路线,请参阅Gradle subproject name different than folder name以获取有关如何开始使用的提示。