Android Studio-创建模块而不复制文件?
我在Android Studio中创建具有依赖项的项目。 我知道如何通过添加模块来链接项目。
但是我意识到“导入模块”在项目内部创建了libProject的副本。
有办法防止这种情况吗? 像“外部模块”一样?
由于我同时负责这两个项目,因此我希望能够将更改推送到libProject Repo,而不必在文件夹之间复制粘贴文件。
谢谢
4个解决方案
103 votes
是的,您可以做到。 该模块需要为其设置Gradle构建文件。 如果有,请在您要链接到的项目中,将其添加到项目根目录下的settings.gradle文件中:
include ':libraryName'
project(':libraryName').projectDir=new File('/path/to/library')
您在第二行中指定的路径是包含库的build.gradle文件的目录的路径。 路径可以是相对的或绝对的。
Scott Barta answered 2020-06-17T21:53:44Z
17 votes
解决方案:
include ':libraryName'
project(':libraryName').projectDir=new File('/path/to/library')
不是为我工作。 在几个小时的浪费之后,我发现了问题所在。 有两个build.gradle文件,一个用于项目,一个用于库名。 如果该库位于文件夹“ \ MyLib”中,则“ \ MyLib”中将有一个build.gradle,而在“ \ MyLib \ app”中将有另一个。 您必须指向“ \ MyLib \ app”而不是“ \ Mylib”。
希望这可以为其他人节省一些时间。
cbelwal answered 2020-06-17T21:54:13Z
1 votes
您还可以在应用程序build.gradle中使用android {sourceSets {main.java.srcDirs + ='../../../library/src'}}。 不确定是否支持所有android资源,因为纯java库效果很好。
pvllnspk answered 2020-06-17T21:54:33Z
1 votes
如果您像我一样拥有多个模块(直到今天我才意识到其中包含副本,所以我认为该项目包含了到源的链接。)
您可以按照以下方式使用多个模块/项目:
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')
MikeT answered 2020-06-17T21:54:57Z