【问题标题】:Reuse java source code in android在android中重用java源代码
【发布时间】:2013-07-24 16:29:54
【问题描述】:

我有一些不依赖于 android 的资源。我想将它们用作 android 应用程序项目以及非 android java 项目中的库。在 Eclipse 中,我似乎没有找到正确的按钮来完成这项工作。我已经阅读了有关在我的项目中集成 jar 的信息,但这不是我想要的。我需要使用源,而不是生成的库。该库仍在开发中,我不想重新编译它,将其导出为 jar 并将其复制到宿主项目中,每次更改时!我也不想在某处复制库资源。我只想在一个开发项目和另一个开发项目中使用这些确切的资源。在 .NET 中,这是没有道理的。在我用谷歌搜索之后,在 Eclipse 中,这是很难和不可能的。

我将不胜感激有关该做什么或期望什么的进一步想法!

【问题讨论】:

  • 这可能不是 Eclipse 独有的问题。你如何处理你的依赖管理——Gradle、Maven?
  • -4 在 5 分钟内,因为我提到了 .NET?我的天啊...!您所说的“日食专属”是什么意思?我没有使用 gradle 或 maven。这是一个简单的项目。如果 Ant 没有在后台做某事,我就没有使用任何依赖管理。至少不会超出手动配置构建路径或复制 jars...

标签: java android eclipse


【解决方案1】:

我将我想要的 java 源文件夹链接到 android 项目 项目属性 -> Java 构建路径 -> 源 -> 链接源。 您可以将同一个文件夹链接到多个项目,这样您就可以重复使用代码而无需复制代码,也无需单独编译。

唯一的问题是,当我在 Eclipse 中搜索其中一个类时,它会多次列出它,每个指向该文件夹的链接一次。因此,我重复使用文件夹的次数越多,搜索结果就越混乱。

当我第一次开始使用 Android 时,我可以从 Java Build Path -> Projects 中包含另一个 Eclipse 项目。我喜欢它,因为它的工作方式与非 android eclipse 项目的工作方式相同。但是当我升级 Android SDK 时它停止了工作。编译仍然有效,但是当我尝试运行应用程序时,它会因找不到类的异常而崩溃。

【讨论】:

    【解决方案2】:

    没有任何依赖管理(意思是:eclipse的内置工具应该管理依赖),可能最简单的方法是:

    1. 为您的源文件夹命名不同(例如,appsrc、libsrc 等)。
    2. 使用新文件夹的工作区相对链接(右键单击项目 -> 新文件夹 -> 高级 -> 链接到替代位置 -> 变量 WORKSPACE -> 扩展 -> 选择您的库项目源 -> 确定。-> 完成
    3. 右键单击您的项目 -> 新建源文件夹 -> 浏览 -> 使用您的链接文件夹。

    不鼓励使用默认包名称(并且不适合我进行快速测试)。在您的库项目中对库的任何使用可能会或可能不会导致解析错误或运行时错误的异常行为,我从未尝试过。

    从来没有在更复杂的项目设置中使用过这个,但它应该适合你。

    【讨论】:

    • 如果你打算在 lib 项目中使用 libs,你很可能必须将它们添加到两个项目中,但如前所述,我从来没有那样使用它。到目前为止,我所做的只是链接在 android 客户端和 java 服务器中使用的基本模型和接口。
    【解决方案3】:

    您说您想将此代码用作多个项目中的库。做到这一点的方法是做你反对做的事情:让它成为一个项目,让它作为一个 JAR 构建,并让你正在使用的构建技术(听起来像 Eclipse)管理它需要的事实被打包成最终的输出。

    但是,并不意味着您将构建 JAR 并将其放入项目的 lib 目录中,这似乎是您害怕的事情。 Eclipse/Maven/Ant 都可以配置为根据需要重新构建依赖库,然后将它们自动打包到主要目标的构建工件中,对您没有任何痛苦。

    【讨论】:

    • 这听起来很有希望!我怎么做?我已经尝试通过 Android/Library、Java Build Path/Projects、Java Build Path/Libraries 引用我的 java 库并使用 Order 和 Export,但均无济于事。 android运行时每次都给我“找不到类......”。 (我不敢相信,我必须手动配置 xml 文件。这对我来说似乎是一个非常过时的错误。)
    • 你的库项目是 Android 还是 Java 类型的?如果它是 Android 类型,则转换为 Java 项目,然后它应该被正确打包(通过 Java 构建路径/项目)。更多信息stackoverflow.com/questions/2047105/…
    • Library 是我想在 android 应用程序中使用的一个 java 项目(两个类)。不幸的是,它似乎没有找到进入 apk 的方式。运行时说“找不到类...”,指的是库中的一个类。我如何从应用程序中引用库并不重要。我不认为我在这里有一个奇怪的配置。只是一个相对较新的 ADT 安装。如果我将这两个类放入一个 android lib 并通过 Android/Library 从应用程序中引用它,一切都会按预期工作。但由于我很确定我会一直使用类似的设置,所以我正在寻找整体解决方案。
    猜你喜欢
    • 2010-12-19
    • 1970-01-01
    • 1970-01-01
    • 2014-06-26
    • 1970-01-01
    • 1970-01-01
    • 2015-03-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多