pro*_*007 14 java android build gradle android-gradle-plugin
如何将外部库和嵌套外部库添加到android项目?
我的项目结构(不允许更改)
应用1 /的build.gradle
buildscript {
...
}
apply plugin: 'android'
dependencies {
compile fileTree(dir: 'libs', include: '*.jar')
compile project(':..:libraries:library1')
compile project(':..:libraries:library2')
compile project(':..:libraries:library3')
compile project(':..:libraries:library4')
}
android {
...
}
Run Code Online (Sandbox Code Playgroud)
APP1并不直接依赖于library3或library4,但是,它会抱怨,如果我不包括他们在在依赖build.gradle文件和settings.gradle文件.所以,我把它们包括在内只是为了阻止它抱怨.
应用1/settings.gradle
include ':'
include '..:libraries:library1'
include '..:libraries:library2'
include '..:libraries:library3'
include '..:libraries:library4'
Run Code Online (Sandbox Code Playgroud)
LIBRARY1 /的build.gradle
buildscript {
...
}
apply plugin: 'android-library'
dependencies {
compile fileTree(dir: 'libs', include: '*.jar')
compile project(':..:library3')
compile project(':..:library4')
}
android {
...
}
Run Code Online (Sandbox Code Playgroud)
LIBRARY1/settings.gradle
include ':'
include '..:library3'
include '..:library4'
Run Code Online (Sandbox Code Playgroud)
library2..4 /的build.gradle
buildscript {
...
}
apply plugin: 'android-library'
dependencies {
compile fileTree(dir: 'libs', include: '*.jar')
}
android {
...
}
Run Code Online (Sandbox Code Playgroud)
library2..4/settings.gradle
include ':'
Run Code Online (Sandbox Code Playgroud)
尝试时gradlew clean build,App1我收到以下错误:
FAILURE: Build failed with an exception.
* Where:
Build file '/home/user/projects/branches/branch1/Apps/libraries/library1/build.gradle' line: 15
* What went wrong:
A problem occurred evaluating project ':..:library:library1'.
> Project with path ':..:library3' could not be found in project ':..:library:library1'.
Run Code Online (Sandbox Code Playgroud)
15号线compile project(':..:library3')中library1/build.gradle的文件.
如何将外部库和嵌套外部库添加到android项目?
Phi*_*l H 16
在顶级settings.gradle(App1/settings.gradle)文件中为每个库执行类似的操作
include ':library1'
include ':library2'
include ':library3'
include ':library4'
project(':library1').projectDir = new File(rootProject.projectDir, '../libraries/library1')
project(':library2').projectDir = new File(rootProject.projectDir, '../libraries/library2')
project(':library3').projectDir = new File(rootProject.projectDir, '../libraries/library3')
project(':library4').projectDir = new File(rootProject.projectDir, '../libraries/library4')
Run Code Online (Sandbox Code Playgroud)
删除其他settings.gradle文件,您不需要它们
然后在每个构建脚本中,您只需要使用
compile project (':library1')
compile project (':library2')
etc....
Run Code Online (Sandbox Code Playgroud)
如上所述,只需在根项目(App1)中使用一个settings.gradle文件.
然后从App1文件夹运行gradlew clean :library1:build以验证library1是否正确构建.
至于关于App1抱怨缺少库3和4的问题,你确定应用程序中没有代码直接引用这些库,或者在编译library1时没有找到库.单独构建每个库以验证它们都构建正常.
| 归档时间: |
|
| 查看次数: |
13982 次 |
| 最近记录: |