提问



我正在尝试使用新的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步骤,这也是必要的,正如其他人指出的那样]]

其它参考1


以下是将本地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命令


其它参考2


在项目右键单击


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


按照以下屏幕截图:



1:


[65]


2:


[66]


3:


[67]


你会看到这个:


[68]

其它参考3


IIRC,简单地使用添加为库并不足以让它与项目一起编译。


检查Intellij关于向项目添加库的帮助[69]


你最感兴趣的部分是:



  (在File > Project Structure中))打开模块设置,然后选择依赖关系选项卡。

  
  在依赖关系选项卡上,单击添加并选择库。

  
  在选择库对话框中,选择一个或多个库,然后单击添加所选项。



如果库未显示在对话框中,请将其添加到库设置中,位于模块下方。


您不应再需要添加compile files(),并且应该将库正确添加到您的项目中。

其它参考4


在Android Stuido中,我喜欢使用Gradle来管理Gson lib。


在build.gradle文件中添加以下依赖项。


repositories {mavenCentral()}

dependencies {compile 'com.google.code.gson:gson:2.2.4'}


一切都好。


你也可以看到这篇文章。
在Android工作室中集成第三方库的最佳方法

其它参考5


所有这些解决方案都已过时。现在Android Studio非常简单:


文件>新模块......


下一个屏幕看起来很奇怪,就像你正在选择一些小部件或其他东西但保留它
在第一张图片和下面滚动并找到导入JAR或.AAR包


然后从文件菜单中选择Project Structure。从打开的窗口中选择app,然后选择dependencies,然后按green plus button,选择module dependency,然后选择导入的模块,然后按OK

其它参考6


编译文件...曾经为我工作,但现在不再适用。经过多次痛苦,我发现使用它可以起作用:


compile fileTree(dir: 'libs', include: '*.jar')


我不知道为什么会有所作为,但是,至少该死的东西现在正在发挥作用。

其它参考7



  在 Android Studio 中添加外部库的简单步骤

  
  

      
  1. 如果您在 Android 项目浏览器中查看,请将其更改为项目视图,如下所示

  2.   

  
   [71]

  
  

      
  1. 右键单击要添加外部库的所需模块,然后选择 New> Directroy 并将其命名为
      

  2.   
  3. 现在将 blah_blah.jar 复制到 libs 文件夹

  4.   
  5. 右键单击blah_blah.jar,然后选择 Add as Library .. 。这将自动添加并输入 build.gradle 作为编译
      文件(libs/blah_blah.jar)并同步gradle。你完成了

  6.   

  
  请注意:如果您使用的是第三方库,那么最好使用依赖项,其中Gradle脚本
  在gradle时自动下载JAR和依赖JAR
  脚本运行。

  
  例如:编译com.google.android.gms:play-services-ads:9.4.0

  
  阅读更多关于Gradle Dependency Mangement [72]


其它参考8



  1. 从网站下载图书馆文件

  2. 从Windows浏览器复制

  3. 从Project Explorer
  4. 粘贴到lib文件夹
  5. Ctrl + Alt + Shift + S 打开项目结构

  6. 选择依赖关系选项卡,使用+
  7. 添加文件
  8. 工具栏使用按钮
  9. 将项目与gradle文件同步


这解决了我的问题。试试,如果有人想要更多细节,请告诉我。

其它参考9


我通过在build.gradle中添加一行来实现它:


 dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar']) ----> AS creates this
    compile 'com.google.code.gson:gson:2.3.1'   ----------> I added this one
    }


不要忘记点击右上角的立即同步。


我正在使用Android Studio 1.0.1。

其它参考10


我发现Android Studio的Dependency Manager非常方便且功能强大,可用于管理第三方依赖项(如此处提到的gson)。提供适用于我的分步指南(注意:这些步骤是针对Android平台上的Android Studio 1.6及更高版本进行测试的)。


步骤1:
转到Build> Edit Libraries and Dependencies ...它会打开对话框Project Structure


[73]


步骤-2:
选择app,然后选择Dependencies选项卡。然后选择添加> 1库依赖项


[74]


步骤-3:
将显示选择库依赖关系对话框,在搜索中指定gson并按搜索按钮


[75]


步骤-4:
所需的依赖项将显示在搜索列表中,选择com.google.code.gson:gson:2.7(这是我写答案时的最新版本),按OK


[76]


在项目结构对话框中按确定。 Gradle会相应地更新您的构建脚本。


[77]


希望这会有所帮助:)

其它参考11



   1. 将jar(在我的情况下,gson-2.2.4.jar)放入libs文件夹中。

  
   2. 确保编译文件(libs/gson-2.2.4.jar)位于build.gradle文件中。

  
   3. 现在点击使用Gradle文件同步项目(左侧是顶部栏上的AVD管理器按钮)。



在我完成上述三项工作后,它开始正常工作。

其它参考12


下载&复制libs文件夹中的.jar文件,然后将这些行添加到build.gradle:


dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.google.code.gson:gson:2.3.1'
}


别忘了点击立即同步


Android Studio 1.1.0

其它参考13


与Eclipse不同,我们不需要下载jar并将其放在/libs文件夹中.Gradle处理这些事情,我们只需要添加Gradle依赖项,Gradle下载它并放入gradle缓存中。


我们需要添加依赖项:


依赖项{compilecom.google.code.gson:gson:2.2.4}


而已
但是我们也可以下载jar&将其添加为库,但最佳做法是添加Gradle依赖项。

其它参考14


您可以使用两个选项执行此操作。


第一个简单方法。


将.jar文件复制到剪贴板,然后将其添加到libs文件夹。要查看项目中的libs文件夹,请从文件夹上方的组合框中选择项目。


然后右键单击.jar文件并单击add as a library然后选择一个模块然后确定。
您可以在dependencies块中的build.gradle文件中看到.jar文件。


 dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        compile 'com.android.support:appcompat-v7:21.0.3'
        compile project(':okhttp-2.0.0')
        compile 'com.google.code.gson:gson:2.3.1'
    }





第二种方式是:我们可以通过将.jar文件作为.jar模块导入,将.jar文件添加到模块,然后将此模块添加到我们想要的任何模块中。


导入模块--->选择你的.jar文件 - >导入为.jar -



然后CTRL + ALT + SHIFT + S - >项目sturure - >选择你想要的模块添加一个jar - > Dependencendies - > Module Dependency。模块的build.gradle将自动更新。


其它参考15


只需将.jar文件放在Android项目的libs文件夹中即可。


compile fileTree(dir: 'libs', include: ['*.jar'])


应用程序graddle文件中的这行代码将完成剩下的工作。


Happy Coding :)

其它参考16


我已经完成了 3个步骤以及它的工作魅力。


(我使用的是Android Studio 2.1.2)


[78]


第1步



  • jar包名称(作为示例compile 'com.squareup.okhttp3:okhttp:3.3.1')添加到 build.gradle(模块:app)下的gradle构建脚本中。



[79]


第2步:
右键点击应用文件夹 - >新建 - >模块


[80]


第3步:点击导入JAR/.AAR包然后浏览您的包。举个例子:OkHttp.jar [81]


[82]

其它参考17


menu File -> project struct -> module select "app" -> dependencies tab -> + button 
-> File dependency -> PATH/myfile.jar

其它参考18


在Mac OS X上:



  1. 将jar添加为库(将jar拖到libs,右键单击add as lib)

  2. 将编译语句添加到build.grade

  3. 安装gradle v1.6(使用自制软件)



    • brew install gradle

    • gradle -v

    • 如果不是v1.6,请升级homebrew


  4. gradle clean(重建android无效)



这把我排除在外。

其它参考19


创建一个文件夹库。添加.jar文件。右键单击它,你会发现添加jar作为依赖。点击它。这就是你需要做的一切。
您可以找到添加到build.gradle文件的依赖项。

其它参考20


1)在Project/app/src文件夹中创建一个your_libs文件夹。


2)将您的jar文件复制到此your_libs文件夹中


3)在Android Studio中,转到文件 - >项目结构 - >依赖项 - >添加 - >文件依赖项并导航到您的jar文件,该文件应位于src/your_libs下


3)选择你的jar文件,然后单击确定


然后你可以在你的build.gradle上看到这样的:编译
文件( SRC/your_libs/your.jar)

其它参考21


在android Studio 1.1.0中。
我通过以下步骤解决了这个问题:


1:将jar文件放入libs目录。 (在Finder中)


2:打开模块设置,转到依赖关系,在左下角有一个加号按钮。单击加号按钮,然后选择文件依赖关系。这里你可以看到你的jar文件。选择它并解决它。

其它参考22


第1步:现在在 app folder 下,您应该看到 libs ,如果您没有看到它,然后创建它


第2步: Drag & Drop the .jar file here ,您可能会收到提示 "This file does not belong to the project" ,只需点击 OK 按钮。


第3步:现在您应该在libs文件夹 下看到 jar文件,右键单击jar文件并选择 "Add as library", Click OK for prompt "Create Library"


第4步:现在添加了 jar


[83]

其它参考23


像许多人之前指出的那样你应该补充


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


到您的build.gradle文件。


但是我在Android Studio中有一个从Eclipse迁移的项目,在这种情况下,libs文件夹被命名为lib,所以对我来说删除s解决了这个问题。

其它参考24


我已经阅读了这里的所有答案,它们似乎都涵盖了旧版本的Android Studio!


使用Android Studio 2.2.3创建的项目我只需要在app下创建一个libs目录并将我的jar放在那里。
我用我的文件管理器做到了这一点,无需在Android Studio中点击或编辑任何内容。


它为什么有效?打开构建/编辑库和依赖关系,您将看到:


{include=[*.jar], dir=libs}

其它参考25


使用Android Studio 3.0:


您应该只需将jar文件复制到app文件夹中的libs文件夹即可。


... myproject \\ app \\ libs \\ myfile.jar


然后从项目窗口的下拉列表中选择项目文件,右键单击项目,选择同步以在项目文件中查看该文件。它会自动在gradle文件中添加依赖项(Module:app)。


dependencies {
...
    implementation files('libs/myfile.jar')


这是另一个解决方案:


转到项目文件视图(从下拉列表中选择项目文件)。


[84]


选择New ... Directory,在app下创建一个名为libs的文件夹。


[85]


打开文件资源管理器,将jar文件复制并粘贴到libs文件夹中。


在Android Studio中,右键单击jar文件,然后从弹出菜单中选择Add as a Library ....


[86]


您应该在gradle文件中看到依赖项列表中列出的文件:


dependencies {
...
    implementation files('libs/myfile.jar')
}


打开你的java文件,然后在那里添加import语句:


import com.xxx.xxx;

其它参考26


compile fileTree(dir: 'libs', include: '*.jar')工作正常,但compile files(...)已经使用Studio Beta 0.8.1进行了测试

其它参考27


我的回答基本上是收集上面提供的一些正确但不完整的答案。



  1. 打开build.gradle

  2. 添加以下内容:


    dependencies {
    compile 'com.android.support:appcompat-v7:19.+'
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.google.code.gson:gson:2.3'
    }
    


    这将允许支持两种不同的添加依赖项的方法。 compile fileTree(dir: 'libs', include: ['*.jar'])(如提到的@Binod)告诉编译器查看文件夹libs下的任何jar。创建这样的文件夹libs是一个很好的做法,它将包含我们的应用程序需要使用的jar包。



但这也将允许支持Maven依赖。编译'com.google.code.gson:gson:2.3'(如@saneryee所述)是另一种推荐的方法来添加中央远程存储库中的依赖项,而不是我们的/libs本地存储库。它基本上告诉gradle查找该软件包的那个版本,它告诉编译器在编译项目时考虑它(在类路径中有它)


PS:我用两者

其它参考28


对于较新的Android 1.0.2,您的build.gradle文件中已经存在以下内容


编译fileTree(包括:[[* .jar]],dir:libs)


将库jar添加到libs文件夹 - >右键单击库 - >单击添加为库 - >它要求您添加项目 - >选择项目 - >单击确定
以下行自动添加到build.gradle


编译文件(libs/android-query.jar)


这样做对我而言。没有必要了。我已经为android aquery展示了这个用于android的另一个第三方库。

其它参考29



  1. 在app级别添加了libs文件夹。

  2. 在此项目中添加了所有jars。

  3. 接下来,选择libs文件夹中的所有jar,

  4. 右键单击所选项目,然后说添加库

  5. 然后你会在项目资源管理器中找到jars扩展选项。



我观察到CTRL + ALT + SHIFT + S - >项目结构 - > app-module - > Dependencies已经有一个条目为(dir:libs,include:* .jar)under最初是编译选项。按照上述步骤添加jar后,build.gradle获得了新添加的jar的条目。