Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/188.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Eclipse中将非Android库项目添加到Android应用程序_Java_Android_Eclipse - Fatal编程技术网

Java 在Eclipse中将非Android库项目添加到Android应用程序

Java 在Eclipse中将非Android库项目添加到Android应用程序,java,android,eclipse,Java,Android,Eclipse,我的Eclipse工作区中有三个项目: 基于maven的库项目,生成.jar文件。这个项目包含我们的核心代码。 基于maven的Java桌面应用程序。此应用程序依赖于库项目。 我们刚刚开始构建的Android应用程序。它还没有被专业化。 我希望Android应用程序使用库项目作为依赖项 我已经阅读了一些关于在Android应用程序中添加库文件依赖项的类似问题的回复,我试着遵循这些回复: 方法1: 项目->属性->Java构建路径->项目->添加和添加库项目 现在,我可以使用库项目中的类了。编译器

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

基于maven的库项目,生成.jar文件。这个项目包含我们的核心代码。 基于maven的Java桌面应用程序。此应用程序依赖于库项目。 我们刚刚开始构建的Android应用程序。它还没有被专业化。 我希望Android应用程序使用库项目作为依赖项

我已经阅读了一些关于在Android应用程序中添加库文件依赖项的类似问题的回复,我试着遵循这些回复:

方法1:

项目->属性->Java构建路径->项目->添加和添加库项目

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

方法2:

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

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

方法3:

转到库项目的属性。您将在左窗格中看到Android。选择它并标记IsLibrary字段

然而,在我的例子中,左窗格中没有Android属性。我猜这个属性只有在它是真正的Android库项目时才会显示

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

以下是我希望实现的目标的总结:

在桌面应用程序中也要使用相同的库项目 作为Android应用程序。 在Android应用程序上,源代码调试应该可以工作。 如果库应用程序中有任何源代码更改,Android应用程序应该自动获取新的更改,而不是每次尝试将新的.jar文件拖到libs文件夹中。
到目前为止,Method1似乎是一个不错的选择,但您需要研究为什么会得到ClassNotFoundException——将APK解包,因为它是一个归档文件,将其解压,并查看为什么不包括库类

根据经验,如果您使用Eclipse,我相信您会遇到这种异常,因为您在将库添加到Android项目时没有检查库是否已导出-在将库添加到构建路径后,请执行以下操作:项目道具->构建路径->订单和导出,在这里确保您的库项目已被选中。此ClassNotFoundException存在已知的问题/挫折,解决方法是选择“导出”选项卡。我相信这篇文章包含或

在调试jar代码时,需要在libs文件夹中包含一个属性文件,该文件的名称与jar文件ex相同。如果库jar文件是mylib.jar,则需要有一个mylib.jar.properties文件。该文件应该有一个src条目,指向源代码作为jar文件或文件系统存在的路径。Eclipse在添加此文件时有点愚蠢,因此需要重新启动它。它还可以包含一个指向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

您需要实现JNI接口来访问android项目中的非android类和函数。@BirajZalavadia:Peter没有提到任何关于本机代码的内容。我的假设是您没有任何本机代码。对吗?古纳。非常感谢你的帮助。正如您所建议的,诀窍是确保项目也在Order and Export下被选中。这解决了我的问题。彼得