android studio添加extern jar库

时间:2013-11-13 21:13:28

标签: jar android-studio

我想添加extern jar库commons-jexl-2.1.1.jar。我将jar复制到libs/文件夹并执行Add as library...菜单点。我没有在代码中收到任何错误,一切似乎都有效,但在编译和启动应用程序时,我在此行java.lang.NoClassDefFoundError: org.apache.commons.jexl2.JexlEngine收到错误private JexlEngine jexl = new JexlEngine(); 有谁知道我错过了什么?

enter image description here

2 个答案:

答案 0 :(得分:3)

不幸的是,该菜单命令对基于Gradle的项目做错了,我认为这是你的。 (基于Gradle的项目是您在Android Studio中创建新项目时获得的项目)。我已经提交了错误https://code.google.com/p/android/issues/detail?id=62249来请求为这些项目正确执行此菜单命令,或者至少禁用它以防止混淆。

与此同时,您可以通过“项目结构”对话框添加外部JAR依赖项,该对话框将相应的条目添加到build.gradle构建文件中。选择文件菜单>项目结构,然后单击"模块"进入左侧。从中间列表中选择您的模块,然后单击右侧的Dependencies选项卡。然后单击底部的+按钮添加新的依赖项。屏幕截图:

enter image description here

+菜单有一个选项"文件依赖" (如图)。您将获得一个文件选择器,可以让您选择jar文件。

如果您的依赖项是可以在Maven中找到的依赖项,您可能会发现指定Maven坐标更方便;这样,构建系统将自动下载依赖项,您不必手动下载和存储JAR。要进行设置,请选择" Maven依赖"从+菜单。您将获得一个对话框,您可以在其中搜索以查找库的正确Maven坐标。在您的情况下,这些坐标将是" org.apache.commons:commons-jexl:2.1.1@jar"

如果您希望手动编辑构建文件,请在完成“项目结构”对话框更改后查看build.gradle文件以查看其执行的操作。

在Android中使用Gradle的文档位于http://tools.android.com/tech-docs/new-build-system

答案 1 :(得分:1)

<强> courtesy The App Chaps 我已经在同样的事情上挣扎了好几个小时,试图让Gson jar继续工作。我终于破解了它 - 这是我采取的步骤:

  1. 将Gson jar(在我的情况下,gson-2.2.4.jar)放入libs文件夹
  2. 右键单击它并点击“添加为库&#39;
  3. 确保compile files('libs/gson-2.2.4.jar')文件中包含build.gradle
  4. 做一个干净的构建(你可以在Android Studio中做到这一点,但要确保我在终端中导航到我的应用程序的根文件夹并输入gradlew clean。我在Mac OS上X,您的系统上的命令可能有所不同
  5. 在我完成上述三项工作后,它开始正常工作。我认为&#39;添加为库&#39;这是我以前错过的那一步,在我清理它之前它没有工作。

    [编辑 - 添加build.gradle步骤,这也是其他人指出的必要步骤]