我正在Android Studio中创建具有依赖项的项目。我知道如何通过添加模块链接项目。
但我意识到'导入模块'会在项目中创建libProject的副本。
有没有办法防止这种情况?像'外部模块'?
由于我负责这两个项目,我希望能够将更改推送到libProject Repo,而无需在文件夹之间复制粘贴文件。
由于
答案 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')