Android Studio - 创建模块而不复制文件?

时间:2014-07-09 15:56:00

标签: android android-studio

我正在Android Studio中创建具有依赖项的项目。我知道如何通过添加模块链接项目。

但我意识到'导入模块'会在项目中创建libProject的副本。

有没有办法防止这种情况?像'外部模块'?

由于我负责这两个项目,我希望能够将更改推送到libProject Repo,而无需在文件夹之间复制粘贴文件。

由于

4 个答案:

答案 0 :(得分:99)

是的,你可以做到。该模块需要为其设置Gradle构建文件。如果它已经得到了,那么在您链接到它的项目中,将其添加到项目根目录的 settings.gradle 文件中:

include ':libraryName'
project(':libraryName').projectDir=new File('/path/to/library')

您在第二行指定的路径是包含库的 build.gradle 文件的目录的路径。路径可以是相对的或绝对的。

答案 1 :(得分:17)

解决方案:

include ':libraryName'
project(':libraryName').projectDir=new File('/path/to/library')

不适合我。经过几个小时的浪费,我发现了这个问题。有两个build.gradle个文件,一个用于项目,一个用于库名。如果该库位于'\ MyLib'文件夹中,则'\ MyLib'中会有build.gradle,而'\ MyLib \中会有另一个<{1}}应用“即可。您必须指向'\ MyLib \ app'而不是'\ Mylib'

希望这为其他人节省了一些时间。

答案 2 :(得分:1)

你也可以使用 android {sourceSets {main.java.srcDirs + =&#39; ../../../ library / src&#39;您应用 build.gradle 中的。不确定是否支持所有的android资源,因为纯java库运行良好。

答案 3 :(得分:1)

如果你像我一样拥有多个模块(我今天才意识到包含了副本,我认为该项目包含了源代码的链接。

您可以拥有多个模块/项目: -

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')