android studio添加外部jar库

android studio添加外部jar库,jar,android-studio,Jar,Android Studio,我想添加externjar库commons-jexl-2.1.1.jar。我将jar复制到libs/文件夹中,并执行addaslibrary…菜单点。我没有收到代码中的任何错误,一切似乎都正常,但在编译和启动应用程序时,我收到了错误java.lang.NoClassDefFoundError:org.apache.commons.jexl2.JexlEngine在这一行private JexlEngine jexl=new JexlEngine() 有人知道我错过了什么吗 不幸的是,这个菜单命令

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


不幸的是,这个菜单命令对基于Gradle的项目做了错误的事情,我认为你的是。(基于Gradle的项目是您在Android Studio中创建新项目时得到的)。我已经提交了一个bug,请求为这些项目正确地实现这个菜单命令,或者至少禁用它,直到它被实现以防止混淆

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

+菜单有一个“文件相关性”选项(如图所示)。您将获得一个文件选择器,它将允许您选择jar文件

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

如果您喜欢手动编辑生成文件,请在完成“项目结构”对话框更改后签出build.gradle文件,查看它的功能

Android中使用Gradle的文档位于 我已经为同样的事情挣扎了好几个小时,试图让Gson-jar正常工作。我终于破解了它——以下是我采取的步骤:

  • 将Gson jar(在我的例子中是
    Gson-2.2.4.jar
    )放入
    libs
    文件夹中
  • 右键单击它并点击“添加为库”
  • 确保
    编译文件('libs/gson-2.2.4.jar')
    位于
    build.gradle
    文件中
  • 做一个干净的构建(在Android Studio中你可能可以做得很好,但是为了确保我在终端中导航到我的应用程序的根文件夹并键入
    gradlew clean
    。我在Mac OS X上,命令在你的系统上可能不同
  • 在我完成了上述三个步骤后,它开始正常工作。我认为“添加为库”步骤是我以前错过的步骤,并且在我清理它之前它也不起作用


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

    我的“项目结构”窗口看起来有点不同,左侧没有Mudules选项,用于选择
    文件依赖项的“+”也不存在!?您是手动创建项目还是使用“新建项目向导”创建项目?如果您是手动创建的,并且它的目录结构比向导创建的项目更扁平,那么在这种情况下,您可以手动将依赖项添加到build.gradle文件中,方法是放置一个
    compile'org.apache.commons:commons-jexl:2.1。1@jar“
    依赖项中的语句”
    块我已经插入了
    编译文件('libs/commons-jexl-2.1.1.jar'))
    在我的build.gradle文件中,也添加了您的行,但我仍然收到相同的错误…我使用file->New Projects根据您的屏幕截图创建了项目您使用的是非常旧版本的Android Studio(0.2.13)。尝试升级到0.3.5。该版本本身存在一些问题,我们希望在0.3.6中解决这些问题,我们正在努力解决这些问题。