【发布时间】:2014-07-09 15:55:59
【问题描述】:
我正在 Android Studio 中创建具有依赖项的项目。我知道如何通过添加模块来链接项目。
但我意识到“导入模块”会在项目中创建 libProject 的副本。
有没有办法防止这种情况发生?像“外部模块”?
由于我负责这两个项目,我希望能够将更改推送到 libProject 存储库,而不必在文件夹之间复制粘贴文件。
谢谢
【问题讨论】:
我正在 Android Studio 中创建具有依赖项的项目。我知道如何通过添加模块来链接项目。
但我意识到“导入模块”会在项目中创建 libProject 的副本。
有没有办法防止这种情况发生?像“外部模块”?
由于我负责这两个项目,我希望能够将更改推送到 libProject 存储库,而不必在文件夹之间复制粘贴文件。
谢谢
【问题讨论】:
是的,你可以做到。该模块需要为其设置一个 Gradle 构建文件。如果有,那么在您要链接的项目中,将其添加到项目根目录的 settings.gradle 文件中:
include ':libraryName'
project(':libraryName').projectDir=new File('/path/to/library')
您在第二行中指定的路径是包含库的 build.gradle 文件的目录的路径。路径可以是相对的或绝对的。
【讨论】:
compile project(path: ':libraryName')。
解决办法:
include ':libraryName'
project(':libraryName').projectDir=new File('/path/to/library')
对我不起作用。在浪费了几个小时后,我发现了这个问题。有两个build.gradle 文件,一个用于项目,一个用于库名称。如果库位于文件夹 '\MyLib' 中,则 '\MyLib' 中将有一个 build.gradle,而 '\MyLib\app' 中将有另一个 build.gradle 。您必须指向 '\MyLib\app' 而不是 '\Mylib'。
希望这可以为其他人节省一些时间。
【讨论】:
您还可以在您的应用 build.gradle 中使用 android { sourceSets{ main.java.srcDirs += '../../../library/src' }} 。不确定是否支持所有 android 资源,因为纯 java 库运行良好。
【讨论】:
如果您像我一样拥有多个模块(我今天才意识到其中包含副本,我认为该项目包含指向源代码的链接。)
您可以拥有多个模块/项目,如下所示:-
include ':app', ':sqlwords', ':dbindex', ':dbcolumn', ':dbtable', ':dbdatabase', ':displayhelp', ':pickdate'
project(':sqlwords').projectDir= new File('d:/Android_Applications/Modules/sqlwords')
project(':dbcolumn').projectDir= new File('d:/Android_Applications/Modules/dbcolumn')
project(':dbtable').projectDir= new File('d:/Android_Applications/Modules/dbtable')
project(':dbindex').projectDir= new File('d:/Android_Applications/Modules/dbindex')
project(':dbdatabase').projectDir= new File('d:/Android_Applications/Modules/dbdatabase')
project(':displayhelp').projectDir= new File('d:/Android_Applications/Modules/displayhelp')
project(':pickdate').projectDir= new File('d:/Android_Applications/PickDateShowCase/pickdate')
【讨论】: