本文将为您提供关于Gradle-与外部项目一起进行多项目?的详细介绍,我们还将为您解释gradle多项目构建的相关知识,同时,我们还将为您提供关于AndroidGradle将外部库和嵌套的外部库添加到
本文将为您提供关于Gradle-与外部项目一起进行多项目?的详细介绍,我们还将为您解释gradle多项目构建的相关知识,同时,我们还将为您提供关于Android Gradle将外部库和嵌套的外部库添加到项目、android – 如何创建一个没有Gradle支持的新项目?、android-Gradle多项目、android-由于gradle项目同步进行中而无法构建项目的实用信息。
本文目录一览:- Gradle-与外部项目一起进行多项目?(gradle多项目构建)
- Android Gradle将外部库和嵌套的外部库添加到项目
- android – 如何创建一个没有Gradle支持的新项目?
- android-Gradle多项目
- android-由于gradle项目同步进行中而无法构建项目
Gradle-与外部项目一起进行多项目?(gradle多项目构建)
在Gradle多项目设置中是否无法在主项目文件夹之外使用外部依赖项?
就像settings.gradle
文件中一样
include ''C:\some\path\to\dependent\project\ChildA'',''ChildB''
还是必须 始终 将相关项目包含在父项目文件夹中?
答案1
小编典典假设以下文件系统层次结构:
| \ workspace | \ MyProject | \ DependencyA
将以下内容添加到您的settings.gradle
中MyProject
:
include ''..:DependencyA''
和你内心里面build.gradle
的MyProject
dependencies { compile project('':..:DependencyA'')}
根据需要重复尽可能多的项目DependencyA
。
Android Gradle将外部库和嵌套的外部库添加到项目
如何将外部库和嵌套的外部库添加到android项目?
我的项目结构(不允许更改)
- 应用/
- App1 /
- build.gradle
- settings.gradle
- 图书馆/
- 图书馆1 /
- 建立等级
- settings.gradle
- 图书馆2 /
- 建立等级
- settings.gradle
- 图书馆3 /
- 建立等级
- settings.gradle
- 图书馆4 /
- 建立等级
- settings.gradle
应用1
App1 / 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 { ...}
App1不直接依赖library3
或library4
,但是,如果我不在build.gradle
文件和settings.gradle
文件的依赖项中包括它们,它将抱怨。所以,我让他们加入只是为了阻止它抱怨。
App1 / settings.gradle
include '':''include ''..:libraries:library1''include ''..:libraries:library2''include ''..:libraries:library3''include ''..:libraries:library4''
图书馆1
library1 / build.gradle
buildscript { ...}apply plugin: ''android-library''dependencies { compile fileTree(dir: ''libs'', include: ''*.jar'') compile project('':..:library3'') compile project('':..:library4'')}android { ...}
library1 / settings.gradle
include '':''include ''..:library3''include ''..:library4''
图书馆2..4
library2..4 / build.gradle
buildscript { ...}apply plugin: ''android-library''dependencies { compile fileTree(dir: ''libs'', include: ''*.jar'')}android { ...}
library2..4 / settings.gradle
include '':''
当试图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''.
线15 compile project('':..:library3'')
中library1/build.gradle
的文件。
如何将外部库和嵌套的外部库添加到android项目?
答案1
小编典典在顶级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'')
删除其他settings.gradle文件,您不需要它们
然后在每个构建脚本中,您只需要使用
compile project ('':library1'')compile project ('':library2'')etc....
如上所述,只需在根项目(App1)中使用单个settings.gradle文件。
然后从您的App1文件夹运行gradlew clean :library1:build
以验证library1是否正确构建。
至于有关App1抱怨缺少库3和4的问题,您确定应用程序中没有直接引用这些库的代码,或者在编译library1时找不到这些库。分别构建每个库以验证它们都可以正常构建。
android – 如何创建一个没有Gradle支持的新项目?
解决方法
android-Gradle多项目
我正在尝试为多项目环境配置gradle.
我的项目结构如下:
MainProject
--external
--A
--B
--C
我已经能够为MainProject配置build.gradle和settings.gradle文件.
我的问题是两个子项目A& B取决于C
在项目A的build.gradle中
apply plugin: 'android-library'
dependencies {
compile filetree(dir: 'libs', include: '*.jar')
compile project('../C')
}
Gradle说无法找到路径为../C的项目.我应该走哪条路?
解决方法:
尝试:
compile project(':external:C')
有关项目路径的更多详细信息,请参见Gradle用户指南中的section 56.5.
android-由于gradle项目同步进行中而无法构建项目
我是使用Android项目0.82版的新手.我正在创建一个新的应用程序(从头开始),然后尝试运行该应用程序.但由于gradle项目同步失败,因此构建过程要花费很多时间,并且在文本编辑器的顶部,它表示gradle项目同步正在进行中.这需要永远.我已经检查了gradle包装器属性,之前已经完成了在项目中下载gradle 1.12的工作.
这是想法日志
2014-08-06 22:51:33,707 [ 284991] INFO - llij.help.impl.HelpManagerImpl - Failed to load help set from 'jar:file:///C:\Users\stephen\AppData\Local\Android\android-studio\help\ideahelp.jar!/idea/Help.hs'
javax.help.HelpSetException: Could not parse
Got an IOException (C:\Users\stephen\AppData\Local\Android\android-studio\help\ideahelp.jar (The system cannot find the path specified))
Parsing Failed for null
at javax.help.HelpSet.<init>(HelpSet.java:146)
at com.intellij.help.impl.HelpManagerImpl.loadHelpSet(HelpManagerImpl.java:159)
at com.intellij.help.impl.HelpManagerImpl.createHelpSet(HelpManagerImpl.java:133)
at com.intellij.help.impl.HelpManagerImpl.invokeHelp(HelpManagerImpl.java:54)
at com.intellij.ide.actions.ContextHelpAction.actionPerformed(ContextHelpAction.java:42)
at com.intellij.openapi.actionSystem.ex.ActionUtil.performActionDumbAware(ActionUtil.java:164)
at com.intellij.openapi.actionSystem.impl.ActionButton.actionPerformed(ActionButton.java:170)
at com.intellij.openapi.actionSystem.impl.ActionButton.performAction(ActionButton.java:133)
at com.intellij.openapi.actionSystem.impl.ActionButton.processMouseEvent(ActionButton.java:313)
at java.awt.Component.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.Lightweightdispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.Lightweightdispatcher.processMouseEvent(Container.java:4492)
at java.awt.Lightweightdispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:694)
at java.awt.EventQueue$3.run(EventQueue.java:692)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:708)
at java.awt.EventQueue$4.run(EventQueue.java:706)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
at com.intellij.ide.IdeEventQueue.defaultdispatchEvent(IdeEventQueue.java:697)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:520)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:335)
at java.awt.EventdispatchThread.pumpOneEventForFilters(EventdispatchThread.java:242)
at java.awt.EventdispatchThread.pumpEventsForFilter(EventdispatchThread.java:161)
at java.awt.EventdispatchThread.pumpEventsForHierarchy(EventdispatchThread.java:150)
at java.awt.EventdispatchThread.pumpEvents(EventdispatchThread.java:146)
at java.awt.EventdispatchThread.pumpEvents(EventdispatchThread.java:138)
at java.awt.EventdispatchThread.run(EventdispatchThread.java:91)
解决方法:
最后,以某种方式尝试使缓存无效并重新启动几次后没有任何效果,我尝试重新启动笔记本电脑,然后它才开始工作.构建最终可以完成.
今天关于Gradle-与外部项目一起进行多项目?和gradle多项目构建的介绍到此结束,谢谢您的阅读,有关Android Gradle将外部库和嵌套的外部库添加到项目、android – 如何创建一个没有Gradle支持的新项目?、android-Gradle多项目、android-由于gradle项目同步进行中而无法构建项目等更多相关知识的信息可以在本站进行查询。
本文标签: