【问题标题】:Share library between projects在项目之间共享库
【发布时间】:2017-10-19 22:12:12
【问题描述】:

我正在查看 Android Studio 帮助,但没有找到任何可行的方法。 假设我正在开发 2 个应用程序:app1 和 app2。这两个应用程序在它们之间共享共同的逻辑,所以我有库 lib1。在 Eclipse 中,我可以将它们全部放在同一个工作区中,并且对 lib1 的任何更改(在 app1 或 app2 上工作期间)都会很好地出现在另一个工作区中。

Android Studio 建议将库导入到模块中。在“工作”时,它不会应用任何更改。导入实际上复制了代码,没有对原始代码的任何引用。虽然这对于稳定的库来说可能是可以容忍的,但对于开发项目组来说这是不可能的。 从第一个副本到第二个副本的复制和粘贴代码不可能是他们想要的。 有没有人知道的解决方案?

【问题讨论】:

  • 1.创建 Android 库 2. 添加到您的其他模块(应用程序)依赖项compile project(:mylib)。 3. 利润。
  • JaredBurrows 谢谢,在工作室(版本 1.2.1.1)中似乎找不到这样的选项
  • 通过 IDE:File -> New -> Module -> Android Library。通过 Gradle:将新模块添加到 settings.gradle 并将 apply plugin: 'com.android.library' 应用于配置。
  • 谢谢!我已经这样做了,但是我是新手,所以我不知道如何共享放置在另一个文件夹中的库

标签: android android-studio


【解决方案1】:

远程库:

您仍然需要创建一个 Android Library,但您需要将其推送到本地 maven 存储库以在本地使用它,或者推送到在线存储库,如 JcenterOSS Sonatype

本地图书馆:

Top Gradle Folder
.
+-- Lib-AndroidLibrary
|   +-- src
+-- App-MyApp1
|   +-- src
+-- App-MyApp2
|   +-- src

App-MyApp1App-MyApp2build.gradle 中,您将需要:

dependencies {
    compile project(':Lib-AndroidLibrary')
}

【讨论】:

  • 由于我没有本地 maven 存储库,我将不得不检查这是否有效。不能用git吗?我非常感谢你的努力。您花了很多时间提供帮助,我们对此表示赞赏。谢谢。
  • 这些是您可用的选项。
  • @donald 让我知道你能走多远,我可以随时提供帮助。
  • 希望能得到一些关于 gradle 的信息,并在周末尝试一下。威力克。再次感谢!
【解决方案2】:

使用名为“junction”的文件系统功能为我完成了工作。我将我想要共享的 .java 文件放在一个单独的文件夹中。

    Example: d:\Android\mylib\SharedClass.java

然后我进入项目目录d:\Andorid\ExampleApp\app\src\main\java\com\domain\,执行了这个命令行命令:

    mklink /J mylib d:\Android\mylib

这创建了一种符号链接(联结)。之后,我的 Android Studio 项目树中出现了额外的包。一个是 com.domain.mylib,另一个是 com.domain.exampleactivity 我也尝试使用硬链接(mklink /H),但它不起作用。 Android Studio 正在通过一个中间文件保存文件,并在写入完成后对其进行重命名,从而清除硬链接。

【讨论】:

    猜你喜欢
    • 2017-03-07
    • 1970-01-01
    • 1970-01-01
    • 2018-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-23
    • 1970-01-01
    相关资源
    最近更新 更多