协慌网

登录 贡献 社区

Android Studio:将 jar 添加为库?

我正在尝试使用新的 Android Studio,但我似乎无法让它正常工作。

我正在使用Gson库来序列化 / 反序列化 JSON 对象。但是库不知何故不包含在构建中。

我创建了一个只有MainActivity的新项目。在 / libs 文件夹中复制gson-2.2.3.jar并将其添加为库依赖项(右键单击 - > 添加为库)。这包括 android studio 中的 jar,因此可以从源文件中引用它。

当我尝试运行该项目时,它无法编译,所以我添加:

compile files('libs/gson-2.2.3.jar')

到 de .gradle 文件中的依赖项。之后它正确编译,但在运行应用程序时,我得到一个ClassDefNotFoundException

有谁知道我做错了什么?

答案

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

  1. 把 Gson jar(在我的例子中, gson-2.2.4.jar )放到libs文件夹中
  2. 右键单击它并点击 “添加为库”
  3. 如果你使用的是很多 jar 文件,请确保compile files('libs/gson-2.2.4.jar')build.gradle文件中(或者compile fileTree(dir: 'libs', include: '*.jar')

    编辑:在 Android Studio 3.0 + 中使用implementation files('libs/gson-2.2.4.jar') (或implementation fileTree(dir: 'libs', include: '*.jar')

  4. 做一个干净的构建(你可以在 Android Studio 中做到这一点,但要确保我在终端导航到我的应用程序的根文件夹并键入gradlew clean 。我在 Mac OS X 上,命令可能不同你的系统

在我完成上述四个之后,它开始正常工作。我认为 '添加为库' 步骤是我以前错过的那个步骤,直到我清理它之前它才行。

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

以下是将本地 jar 文件作为库添加到模块的说明:

  1. 在模块目录的顶层创建一个'libs' 文件夹(包含'src' 目录的同一目录)

  2. build.gradle file添加以下内容,以便您的依赖项闭包具有:

    dependencies {
        // ... other dependencies
        compile files('libs/<your jar's name here>')
    }
  3. Android Studio 应该已经设置了 gradlew 包装器。从命令行,导航到项目的顶级(具有gradlew文件的目录)。

    运行./gradlew assemble 。这应该用库来编译项目。您可能需要根据需要修复 build.gradle 文件中的错误。

  4. 为了让 Android Studio 在 IDE 中进行编码时将本地 jar 文件识别为支持库,您需要采取以下几个步骤:

    4.1。右键单击左侧面板中的模块,然后选择 “ Open Library Settings

    4.2。在对话框的左侧面板中,选择 “ Libraries

    4.3。单击左侧第二个面板上方的+号 - > Java

    菜单

    4.4。选择本地 jar 并将其添加到项目中。

  5. 您可能需要再次运行上面的./gradlew命令

在项目中右键单击

-> new -> module
-> import jar/AAR package
-> import select the jar file to import
-> click ok -> done

按照下面的屏幕截图:

1:

步骤1

2:

在此输入图像描述

3:

在此输入图像描述

你会看到这个:

在此输入图像描述