我一直在研究SO并看到很多关于将应用程序链接到库的讨论,但在所有情况下(我发现)都将库导入到应用程序中。
据我了解,导入将库复制到App中。在我们的例子中,我们有几个常见的Java源库(L1,L2等)正在积极开发中,我们需要几个应用程序(A1,A2等)来引用这些库。这意味着无法将库导入/复制到应用程序,因为库经常更改。
这些库已经被创建为单独的Android项目(我们尝试创建模块/ Android库,但这并不是更好)。我们在IDE中使用Android Studio。
如何在不将库复制到项目中的情况下进行链接? 感谢。
答案 0 :(得分:2)
注意:我现在有了更好的answer。我为它创建了一个新的问题(澄清实际问题),因为这个问题被标记为重复。
~/AppProjects/lib/
)。ln -s ~/AppProjects/lib/ ~/AppProjects/<app>/
)。File > New > New Module > Import Gradle Project
时,您可以浏览lib
文件夹中的<app>
文件夹。库模块将以标准方式导入。但是不会有任何副本,因为它已经&#34;是&#34;在app文件夹中;并且更改将直接保存在库文件夹中。
警告:更改库文件后,必须完成完整版本(Build > Rebuild Project
),因为Make Project
会产生compileDebugJavaWithJavac - Unable to find source java class
错误。
答案 1 :(得分:2)
您可以使用jitpack.io发布库,然后以与在graddle上使用任何其他库相同的方式使用它们,包括通过git标记进行版本控制。
基本上,你需要的只是一个git驱动的存储库,比如Github,Bitbucket,GitLab等。
答案 2 :(得分:0)
我会使用git submodule或mercurial suberporitory来实现这一目标。
所有模块(应用程序和库)都有自己的存储库。
从您的应用程序项目中,您有一个专用文件夹,其中包含来自其他存储库的外部依赖项。然后将java库添加为应用程序的子存储库。
项目布局看起来像这样。
在settings.gradle
项目MyApplication
中,您必须包含java-library
include ':java-library'
project(':java-library').projectDir = new File("external/java-library/")
include ':app'
和app的依赖关系build.gradle
dependencies {
implementation project(":java-library")
}