我如何在Android项目中使用外部JAR?
我创build了一个Android项目,并在我的项目中添加了一个外部JAR(hessian-4.0.1.jar)。 然后,我将JAR添加到构buildpath,并在“订单和导出”中将其检查。
看起来Order和Export被忽略,并且外部JAR中的所有类都在运行时丢失。
在使用Eclipse插件构buildAndroid应用程序时,是否有一种方法可以正确包含来自外部JAR的所需类? 我不想用ant或Maven。
蚀
将外部JAR添加到Android项目或任何Java项目的一个好方法是:
- 在项目的根文件夹中创build一个名为
libs
的文件夹 - 将你的JAR文件复制到
libs
文件夹 -
现在右键单击Jar文件,然后selectBuild Path> Add to Build Path ,这将在您的项目中创build一个名为“Referenced Libraries”的文件夹
通过这样做,每当将项目传输到另一台计算机时, 不会丢失在硬盘上引用的库 。
******更新*******
在Android Studio中添加外部库
- 如果您在项目浏览器中的Android视图中,请将其更改为项目视图,如下所示
- 右键单击想要添加外部库的模块,然后selectNew> Directroy并将其命名为“ libs ”
- 现在将blah_blah.jar复制到“ libs ”文件夹中
- 右键单击blah_blah.jar,然后select“ 添加为库 ”。 这会自动添加和inputbuild.gradle作为编译文件('libs / blah_blah.jar')并同步gradle。 你完成了
请注意:如果您正在使用第三方库,那么最好使用传递依赖关系 ,Gradle脚本在Gradle脚本运行时自动下载JAR和依赖关系JAR。
例如:编译“com.google.android.gms:play-services-ads:9.4.0”
阅读更多关于Gradle Dependency Mangement的信息
是的,你可以使用它。 这里是如何:
- 您的项目 – >右键单击 – >导入 – >文件系统 – > yourjar.jar
- 你的项目 – >右键 – >属性 – > Java Build Path – > Libraries – > Add Jar – > yourjar.jar
这个video可能会有用,如果你有一些问题。
我目前正在使用SDK 20.0.3,以前的解决scheme都没有为我工作。
hessdroid在hess失败的地方工作的原因是因为这两个jar文件包含针对不同虚拟机编译的java。 Java编译器创build的字节码不能保证在Dalvik虚拟机上运行。 Android编译器创build的字节码不能保证在Java虚拟机上运行。
在我的情况下,我有权访问源代码,并能够使用我在这里描述的方法创build一个Android jar文件: https : //stackoverflow.com/a/13144382/545064
我知道OP参考Eclipse插件来结束他的问题,但我到了这里,没有指定Eclipse的search。 所以这里适用于Android Studio:
- 将
jar
文件添加到libs目录(如复制/粘贴) - 右键点击
jar
文件并select“添加为库…” - 点击下一个对话框中的“确定”,或者如果您select,则重新命名。
而已!
原来我的堆栈跟踪还不够好,问题不在于外部的JAR没有包含在内。
问题在于Android平台缺lessjavax.naming。*以及外部JAR具有依赖关系的许多其他包。
在Android项目中添加外部JAR文件,并在Eclipse中设置“订单和导出”按预期工作。
转到当前项目
RightClick-> Properties-> Java Build Path->将Jar文件添加到库中 – >点击OK
然后将其添加到当前项目的引用库文件中。
Android的Java API不支持javax.naming。*和其他许多javax。*内容。 您需要将依赖项作为单独的jar包含。
如果使用Android Studio,请执行以下操作(我复制并修改了@Vinayak Bs答案):
- 在Project sideview中selectProject视图(而不是Packages或Android)
- 在项目的根文件夹中创build一个名为libs的文件夹
- 将你的JAR文件复制到libs文件夹
- 侧视图将被更新,JAR文件将显示在您的项目中
- 现在右键单击每个要导入的JAR文件,然后select“Add as Library …”,将其添加到您的项目中
- 之后,所有你需要做的就是引用你的代码中的新类,例如。
import javax.mail.*
在Android Studio如果使用gradle
添加这个build.gradle
compile fileTree(dir: 'libs', include: ['*.jar'])
并将jar文件添加到libs文件夹
如果您正在使用gradle生成系统,请按照下列步骤操作:
-
把
jar
文件放在你的android应用程序的相应libs
文件夹中。 你一般会在Project
>app
>libs
find它。 如果缺lesslibs
文件夹,请创build一个。 -
将此添加到您的
build.gradle
文件您的app
。 (不是你的Project
的build.gradle
)dependencies { compile fileTree(dir: 'libs', include: '*.jar') // other dependencies }
这将包括
libs
文件夹中的所有可用jar
文件。
如果不想包含所有的jar
文件,那么你可以单独添加它。
compile fileTree(dir: 'libs', include: 'file.jar')
在你的项目中创build一个文件夹 (如lib), 将你的jar复制到该文件夹 。 现在去右击项目, configuration构buildpath ,在构buildpathselect
“添加jar子” 浏览到您创build的文件夹并选取jar子。
将.jar文件复制到Android项目的文件夹并不总是可能的。
特别是如果它是工作区中另一个项目的输出,并且不断更新。
为了解决这个问题,你必须把jar作为一个链接文件添加到你的项目中,而不是导入它(它将在本地复制它)。
在UI中select:
项目 – >导入 – >文件系统 – > yourjar.jar – >(选项区)高级 – >在工作区创build链接。
该链接保存在.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个目录(../../../../../)。
然后将其添加到库中:
Project – > Properties – > Java Build Path – > Libraries – > Add Jar – > yourjar.jar
在同一个窗口中selectOrder and Export选项卡,并标记你的jar,所以它会被添加到apk中。