我已经创建了一个Android项目,并添加了一个外部JAR (hessian-4.0.1.jar)到我的项目。然后,我将JAR添加到构建路径中,并在Order和Export中勾选它。
Order和Export似乎被忽略了,并且在运行时缺少来自外部JAR的所有类。
在使用Eclipse插件构建Android应用程序时,是否有一种技巧可以正确地从外部JAR中包含所需的类?我不想使用ant或Maven。
我已经创建了一个Android项目,并添加了一个外部JAR (hessian-4.0.1.jar)到我的项目。然后,我将JAR添加到构建路径中,并在Order和Export中勾选它。
Order和Export似乎被忽略了,并且在运行时缺少来自外部JAR的所有类。
在使用Eclipse插件构建Android应用程序时,是否有一种技巧可以正确地从外部JAR中包含所需的类?我不想使用ant或Maven。
当前回答
我目前使用的是SDK 20.0.3,以前的解决方案都不适合我。
hessdroid工作而hess失败的原因是两个jar文件包含针对不同虚拟机编译的java。Java编译器创建的字节代码不能保证在Dalvik虚拟机上运行。Android编译器创建的字节代码不能保证在Java虚拟机上运行。
在我的情况下,我可以访问源代码,并能够使用我在这里描述的方法为它创建一个Android jar文件:https://stackoverflow.com/a/13144382/545064
其他回答
将.jar文件复制到Android项目的文件夹中并不总是可行的。 特别是如果它是您工作区中另一个项目的输出,并且它不断更新。
要解决这个问题,你必须将jar作为一个链接文件添加到你的项目中,而不是导入它(这会在本地复制它)。
在UI中选择:
项目->导入->文件系统-> yourjar.jar ->(选项区域)高级->在工作空间中创建链接。
链接保存在.project文件中:
<linkedResources>
<link>
<name>yourjar.jar</name>
<type>1</type>
<locationURI>PARENT-5-PROJECT_LOC/bin/android_ndk10d_armeabi-v7a/yourjar.jar</locationURI>
</link>
</linkedResources>
PARENT-5-PROJECT_LOC表示相对于项目文件,向上5个目录(../../../../)。
然后将其添加到库中: 项目->属性-> Java构建路径->库->添加Jar -> yourjar.jar
在同一个窗口中,选择Order and Export选项卡并标记您的jar,以便将其添加到apk中。
如果你正在使用gradle构建系统,请遵循以下步骤:
把jar文件放在你的android应用程序的libs文件夹中。你通常会在Project > app > libs中找到它。如果libs文件夹缺失,请创建一个。 将此添加到构建中。gradle文件你的应用程序(不是你的项目的build.gradle) 依赖关系{ 编译fileTree(dir: 'libs',包括:'*.jar') //其他依赖项 } 这将包括libs文件夹中所有可用的jar文件。
如果不想包含所有jar文件,那么您可以单独添加它。
编译文件树(目录:'libs',包括:'file.jar')
Goto当前项目
右键单击->属性->Java构建路径->将Jar文件添加到库->单击“确定”
然后将其添加到当前项目中的引用库文件中。
我目前使用的是SDK 20.0.3,以前的解决方案都不适合我。
hessdroid工作而hess失败的原因是两个jar文件包含针对不同虚拟机编译的java。Java编译器创建的字节代码不能保证在Dalvik虚拟机上运行。Android编译器创建的字节代码不能保证在Java虚拟机上运行。
在我的情况下,我可以访问源代码,并能够使用我在这里描述的方法为它创建一个Android jar文件:https://stackoverflow.com/a/13144382/545064
Android的Java API不支持javax.naming。*和许多其他javax。*的东西。您需要将依赖项包含为单独的jar。