Eclipse库中的Android应用程序的Android库项目

我在Eclipse工作区中有三个项目:

  • 生成.jar文件的基于Maven的库项目。 这个项目包含我们的核心代码。
  • 基于Maven的Java桌面应用程序。 这个应用程序是依赖于图书馆项目。
  • 我们刚刚开始构建的Android应用程序。 尚未实现。
  • 我希望Android应用程序使用库项目作为依赖项。

    我已经阅读了一些有关向Android应用程序添加库文件依赖关系的类似问题的回复,并试图关注它们:

    方法#1:

    Project-> Properties-> Java Build Path-> Projects - >添加并添加库项目。

    现在,我可以使用库项目中的类。 编译器不会产生任何警告。 但是,当我在模拟器上运行应用程序时,出现类未定义的错误。

    方法#2:

    将生成的.jar文件复制到Android应用程序的“libs”目录中。

    这工作。 没有类未定义的例外。 但是,我无法附加源代码,因此无法单步执行库代码。 另外,每当源文件发生更改时,我都必须手动复制.jar文件。

    方法#3:

    转到图书馆项目的属性。 您将在左侧窗格中看到“Android”。 选择它并标记“IsLibrary”字段。

    但是,在我的情况下,左侧窗格中没有“Android”属性。 我猜这个属性只有在它是一个真正的Android库项目时才会显示。

    我被卡住了。 如果有人能告诉我如何最好地处理这种情况,我将不胜感激。

    以下是我希望达到的内容的总结:

  • 用于桌面应用程序以及Android应用程序的相同库项目。
  • 在Android应用程序上,源代码调试应该可以工作。
  • 如果库应用程序中有任何源代码更改,Android应用程序应自动选取新更改(而不是每次尝试将新的.jar文件拖到libs文件夹中)。

  • 方法#1似乎是迄今为止的选择,但你需要研究为什么你得到那个ClassNotFoundException - 解压缩APK(因为它是一个档案),undex它,看看为什么不包括库类。

    根据经验,如果你使用Eclipse,我相信你会得到这个异常,因为当你将它添加到Android项目时,你没有检查导出的库 - 在你添加它来构建路径之后,如下:Project Props - > Build Path - > Order and Export,这里确保你的库项目被选中。 关于此ClassNotFoundException存在已知问题/沮丧,解决方法是选择导出选项卡。 我相信这篇文章包含更多细节或这个SO主题。

    在调试jar代码时,需要在libs文件夹中包含一个与jar文件命名相同的属性文件(例如,如果库jar文件是mylib.jar ,则需要有一个mylib.jar.properties文件)。 该文件应该有一个src条目指向源代码所在的路径(无论是jar文件还是文件系统)。 当你添加这个文件时,Eclipse有点愚蠢,所以你需要重新启动它。 它可以包含一个doc条目以及指向javadoc所在的位置。 这是我自己的一个例子:

    src=../docs/spring-android-rest-template-1.0.1.RELEASE-sources.jar
    doc=../docs/spring-android-rest-template-1.0.1.RELEASE-javadoc.jar
    
    链接地址: http://www.djcxy.com/p/15635.html

    上一篇: Android library project to an Android app in Eclipse

    下一篇: How to optimize the size of jump tables?