1

我有一个简单的 Android 库项目,其中仅包含网络调用功能。它不需要继承任何 XML/资源等…来调用应用程序。当我使用 Eclipse IDE 构建这个项目时(右键单击项目并单击Build Project),它会在bin/libproject.jar. 我可以简单地将这个文件放到任何项目的构建路径中,它工作正常。

现在,我想为我的库实现持续集成。这意味着,我需要一些命令行方式来实现相同的目的(构建 jar,当我使用 构建项目时ant)。Ant 以不同的方式构建项目。它classes.jarbin/文件夹中创建,与libproject.jar.

我相信 Eclipse Build Project(ADT rev-21)正在为我的库项目构建这个完整的 JAR(这更像是 JAR 之类的 java 项目)正在做一些神奇的事情。

你知道我怎样才能使用命令行实现同样的目标吗?

4

1 回答 1

0

我使用 eclipse 4.3 w/ant 和 sdk 工具 21.1

IMO - 他们最近更改了关于 lib 依赖项的 sdk。

http://tools.android.com/recent/dealingwithdependenciesinandroidprojects

见上面的链接。

我的示例库依赖项(传递)如下:

ABS <== 滑动菜单 <== 我的项目

所以,在 SM.project.properties... android.library.reference.1=../../src/ABS/library

并且,在 MP.project.properties ... android.library.reference.1=../../src/SlidingMenu/library

在 Eclipse 外部的终端会话中,使用 Eclipse 内部、ant 构建工具或 CLI 上的 ant 在 proj=SM 上运行的 ant 构建执行以下操作:

[javac] Note: Recompile with -Xlint:deprecation for details.
 [echo] Creating library output jar file...
  [jar] Building jar: /home/rob/src/tools/ActionBarSherlock-4.2.0/library/bin/classes.jar

和 ant build, run on proj=MP 执行以下操作:

      Setting project property: out.library.jar.file -> /home/rob/src/SlidingMenu/library/bin/classes.jar
..
      [jar] Building jar: /home/rob/src/SlidingMenu/library/bin/classes.jar

IMO - 你应该专注于两件事:

在依赖项的 file=project.properties 中获取正确的 lib 引用。

仔细检查eclipse项目/properties/java构建路径/顺序和导出

阅读链接,因为它包含与“订单导出”相关的多个特定注释...

当您在 ant 中构建依赖项目时,它应该在内部触发其他项目的构建。我认为这是在依赖项目的构建路径中控制的。

关于调试的附加说明 - 我无法直接从项目资源管理器中进行调试,因为启动器不喜欢 2 依赖项目的“classes.jar”。Debug 坚持在每个库的 ./bin 目录中有名称为“${project-name}.jar”的 jar。但是 ant 分配“classes.jar”,如上所示。

因此,为了调试,我在 Eclipse 中使用了 DDMS 选项卡的替代方法,该应用程序已经在运行。然后你找到进程并附加调试器。

于 2013-03-14T17:31:39.973 回答