我想添加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();
有谁知道我错过了什么?
答案 0 :(得分:3)
不幸的是,该菜单命令对基于Gradle的项目做错了,我认为这是你的。 (基于Gradle的项目是您在Android Studio中创建新项目时获得的项目)。我已经提交了错误https://code.google.com/p/android/issues/detail?id=62249来请求为这些项目正确执行此菜单命令,或者至少禁用它以防止混淆。
与此同时,您可以通过“项目结构”对话框添加外部JAR依赖项,该对话框将相应的条目添加到build.gradle构建文件中。选择文件菜单>项目结构,然后单击"模块"进入左侧。从中间列表中选择您的模块,然后单击右侧的Dependencies选项卡。然后单击底部的+按钮添加新的依赖项。屏幕截图:
+菜单有一个选项"文件依赖" (如图)。您将获得一个文件选择器,可以让您选择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继续工作。我终于破解了它 - 这是我采取的步骤:
gson-2.2.4.jar
)放入libs
文件夹compile files('libs/gson-2.2.4.jar')
文件中包含build.gradle
gradlew clean
。我在Mac OS上X,您的系统上的命令可能有所不同在我完成上述三项工作后,它开始正常工作。我认为&#39;添加为库&#39;这是我以前错过的那一步,在我清理它之前它没有工作。
[编辑 - 添加build.gradle
步骤,这也是其他人指出的必要步骤]