在android-和java项目之间共享源代码

时间:2012-01-31 08:15:19

标签: java android

有一个类,使用android platformjdk进行编译。现在,我的想法是,在两个项目中使用该类,一个是android,另一个是java应用程序。

所以,我创建了一个包含两个模块的项目,一个用于android,另一个用于java解决方案。一切正常,复制并粘贴两个模块之间的类源,但使用起来不太舒服。

所以,问题是如何在没有复制和粘贴的情况下完成它。我更喜欢intellij解决方案,但如果需要,我愿意改为eclipse。

感谢所有答案。

4 个答案:

答案 0 :(得分:0)

创建一个包含共享类的MyLibrary项目,将其打包为jar(MyLibrary.jar),并将此jar添加为Java和Android项目的库。

答案 1 :(得分:0)

由于您说该类是“常见的”,这意味着它不使用任何特定于Android的类。在这种情况下,您只需将公共代码作为JAR库分发给java和Android项目。

答案 2 :(得分:0)

不幸的是,我真的不明白2个模块的项目是什么意思。

此问题的典型解决方案是3个项目:

  1. android project
  2. 其他项目
  3. 共享(实用程序)项目
  4. 项目1和2取决于项目3.

    如果你正在使用maven,这很简单:你只需要添加适当的依赖标记。例如,如果您的实用程序项目的工件是“com.mycompany.util”,请将以下定义添加到依赖项目的pom.xml中:

        <dependency>
            <groupId>com.mycompany</groupId>
            <artifactId>util</artifactId>
            <version>1.0</version>
        </dependency>
    

答案 3 :(得分:0)

FWIW,这是我使用NetBeans 7.1.1的工作......可能不需要其中一些步骤,但经过几天的实验,这似乎有效。

  1. 创建一个包含共享类&amp;的“Shared1”Java库。他们的源代码
  2. 将“Shared1”库添加到桌面Java项目
  3. 创建“共享”Android项目...在属性中,勾选“Is Library”并设置自定义位置“../ Shared1.dist”
  4. 将“共享”项目添加到Android应用程序项目中的库
  5. 在Android应用程序项目中添加“Shared1”作为JAR库(自定义位置“../Shared1.dist”)
  6. “Shared1”项目中的类现在可用于桌面环境和Android环境。

    请注意!!!! 在“共享”库类中使用java.awt类不会生成任何编译器警告,但会导致Android应用程序崩溃。 后续运行也会崩溃,即使已删除java.awt引用并且Clean&amp;建立完成所有东西!!!