我正在尝试使用新的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
。
有谁知道我做错了什么?
答案 0 :(得分:1499)
我已经在同样的事情上苦苦挣扎了好几个小时,试图让Gson jar继续工作。我终于破解了它 - 这是我采取的步骤:
gson-2.2.4.jar
)放入libs
文件夹确保compile files('libs/gson-2.2.4.jar')
文件中包含build.gradle
(如果您使用的是多个jar文件,则为compile fileTree(dir: 'libs', include: '*.jar')
)
修改:在Android Studio 3.0 +中使用implementation files('libs/gson-2.2.4.jar')
(或implementation fileTree(dir: 'libs', include: '*.jar')
}
做一个干净的构建(你可以在Android Studio中做到这一点,但要确保我在终端导航到我的应用程序的根文件夹并输入gradlew clean
。我在Mac上OS X,您的系统上的命令可能有所不同
完成上述四项后,它开始正常工作。我认为'添加为库'步骤是我之前错过的一个步骤,直到我清理它之前它才起作用。
[编辑 - 添加build.gradle
步骤,这也是其他人指出的必要步骤]
答案 1 :(得分:265)
以下是将本地jar文件作为库添加到模块的说明:
在模块目录的顶层创建一个'libs'文件夹(包含'src'目录的同一目录)
在build.gradle file
中添加以下内容,以便您的依赖关系具有:
dependencies {
// ... other dependencies
compile files('libs/<your jar's name here>')
}
Android Studio应该已经设置了gradlew包装器。从命令行,导航到项目的顶级(具有gradlew
文件的目录)。
运行./gradlew assemble
。这应该用库来编译项目。您可能需要根据需要修复build.gradle文件中的错误。
为了让Android Studio在IDE中进行编码时将本地jar文件识别为支持库,您需要采取更多步骤:
4.1。右键单击左侧面板中的模块,然后选择Open Library Settings
。
4.2。在对话框的左侧面板中,选择Libraries
。
4.3。点击左侧第二个面板上方的+
符号 - &gt; Java
4.4。选择您当地的jar并将其添加到项目中。
您可能需要再次运行上述./gradlew
命令
答案 2 :(得分:108)
在项目中右键单击
-> new -> module
-> import jar/AAR package
-> import select the jar file to import
-> click ok -> done
1:
2:
3:
你会看到:
答案 3 :(得分:47)
检查Intellij's help有关向项目添加库的信息
最让您感兴趣的部分是:
(在
File > Project Structure
中)打开模块设置,然后选择“依赖关系”选项卡。在Dependencies选项卡上,单击add并选择Library。
在“选择库”对话框中,选择一个或多个库,然后单击“添加所选项”。
如果库未显示在对话框中,请将其添加到“模块”下面的“库”设置中。
您不再需要添加compile files()
,并且应该将库正确添加到您的项目中。
答案 4 :(得分:46)
在Android Studio中,我喜欢使用Gradle来管理Gson lib。
在build.gradle文件中添加以下依赖项。
repositories {mavenCentral()}
dependencies {compile 'com.google.code.gson:gson:2.2.4'}
一切都好。
你也可以看到这篇文章。 The best way to integrate third party library in Android studio
答案 5 :(得分:40)
所有这些解决方案都已过时。现在在Android Studio中非常简单:
档案&gt;新模块......
下一个屏幕看起来很奇怪,就像你正在选择一些小部件或其他东西但保留它 在第一张图片上和下面滚动并找到&#34;导入JAR或.AAR包&#34;
然后从文件菜单中选择Project Structure
。从打开的窗口中选择app
,然后选择dependencies
,然后按green plus button
,选择module dependency
,然后选择模块导入然后按OK
答案 6 :(得分:35)
在 Android Studio
中添加外部库的简单步骤
- 如果您在 Android 项目浏览器中查看,请将其更改为项目视图,如下所示
醇>
- 右键单击要添加外部库的所需模块,然后选择 New&gt; Directroy 并将其命名为 '库
- 现在将 blah_blah.jar 复制到' libs '文件夹中
- 右键单击blah_blah.jar,然后选择“ Add as Library .. ”。这将自动添加并输入 build.gradle 作为编译 文件('libs / blah_blah.jar')并同步gradle。你已经完成了
醇>请注意:如果您使用的是第三方库,那么最好使用依赖项,其中Gradle脚本 在gradle时自动下载JAR和依赖JAR 脚本运行。
例如:编译'com.google.android.gms:play-services-ads:9.4.0'
答案 7 :(得分:33)
'编译文件......'曾经为我工作,但不再适用。经过多次痛苦,我发现使用它可以起作用:
compile fileTree(dir: 'libs', include: '*.jar')
我不知道为什么会有所作为,但至少该死的东西现在正在发挥作用。
答案 8 :(得分:17)
这解决了我的问题。试试,如果有人想要更多细节,请告诉我。
答案 9 :(得分:17)
我只需在build.gradle中添加一行就可以了。
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar']) ----> AS creates this
implementation 'com.google.code.gson:gson:2.3.1' ----------> I added this one
}
不要忘记点击右上角的“立即同步”。
我使用的是Android Studio 1.0.1。
答案 10 :(得分:13)
我发现Android Studio的Dependency Manager非常方便且功能强大,可用于管理第三方依赖项(如此处提到的gson)。提供适合我的分步指南(注意:这些步骤是针对Android平台上的Android Studio 1.6和以后版本进行测试的。)
<强>步骤1:强> 转到&#34;构建&gt;编辑库和依赖项......&#34;它会打开对话框&#34;项目结构&#34;
<强>步骤-2:强> 选择&#34; app&#34;然后选择&#34; Dependencies&#34;标签。然后选择&#34;添加&gt; 1图书馆依赖&#34;
<强>步骤-3:强> &#34;选择图书馆依赖&#34;将显示对话框,指定&#34; gson&#34;在搜索中按下&#34;搜索按钮&#34;
<强>步骤-4:强> 所需的依赖关系将显示在搜索列表中,选择com.google.code.gson:gson:2.7(这是我写答案时的最新版本),按确定
按&#34;项目结构&#34;对话。 Gradle会相应地更新您的构建脚本。
希望这会有所帮助:)
答案 11 :(得分:11)
1。将jar(在我的情况下,
gson-2.2.4.jar
)放入libs文件夹。2. 确保编译文件(
libs/gson-2.2.4.jar
)位于build.gradle文件中。3. 现在点击“使用Gradle文件同步项目”(左侧是顶部栏上的AVD管理器按钮)。
在我完成上述三项工作后,它开始正常工作。
答案 12 :(得分:9)
下载&amp;将您的.jar
文件复制到libs
文件夹中,然后将这些行添加到build.gradle:
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.google.code.gson:gson:2.3.1'
}
不要忘记点击&#34;立即同步&#34;
答案 13 :(得分:9)
您可以使用两个选项执行此操作。
第一个简单的方法。
将.jar文件复制到剪贴板,然后将其添加到libs文件夹。要查看项目中的libs文件夹,请从文件夹上方的组合框中选择项目。
然后右键单击.jar文件并单击add as a library然后选择一个模块然后确定。 您可以在依赖项块中的build.gradle文件中看到.jar文件。
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:21.0.3'
implementation project(':okhttp-2.0.0')
implementation 'com.google.code.gson:gson:2.3.1'
}
第二种方式是:我们可以通过将.jar文件作为.jar模块导入,将.jar文件添加到模块中,然后将此模块添加到我们想要的任何模块中。
导入模块---&gt;选择你的.jar文件 - &gt;而不是作为.jar导入 -
然后CTRL + ALT + SHIFT + S - &gt; project sturure - &gt;选择你想要的模块添加一个jar - &gt; Dependencendies - &gt;模块依赖。模块的build.gradle将自动更新。
答案 14 :(得分:7)
我已经完成了 3个步骤以及它的工作魅力。
(我使用的是Android Studio 2.1.2)
第1步
compile 'com.squareup.okhttp3:okhttp:3.3.1'
)添加到 build.gradle(模块:应用)下的gradle构建脚本中。第2步: 右键点击应用文件夹 - &gt;新 - &gt;模块强>
答案 15 :(得分:7)
将.jar
个文件放在Android项目的libs
文件夹中。
然后在应用程序的gradle文件中添加以下代码:
compile fileTree(dir: 'libs', include: ['*.jar'])
对于Android gradle插件3.0及更高版本,最好使用它:
implementation fileTree(dir: 'libs', include: ['*.jar'])
答案 16 :(得分:7)
与Eclipse不同,我们不需要下载jar并将其放在/ libs文件夹中。 Gradle处理这些事情,我们只需要添加Gradle依赖项,Gradle下载它并放入gradle缓存中。
我们需要将依赖项添加为:
依赖关系{实现'com.google.code.gson:gson:2.2.4'}
就是这样 但是我们也可以下载jar&amp;将其添加为库,但最佳做法是添加Gradle依赖项。
答案 17 :(得分:6)
使用Android Studio 3 +:
您应该只需将jar文件复制到app文件夹下的libs文件夹即可。
... myproject \ app \ libs \ myfile.jar
然后从“项目”窗口的下拉列表中选择“项目文件”,右键单击项目,选择“同步”以在“项目文件”中查看该文件。它会自动在gradle文件中添加依赖项(Module:app)。
dependencies {
...
implementation files('libs/myfile.jar')
这是另一种解决方案:
转到“项目文件”视图(从下拉列表中选择“项目文件”)。
选择新建......目录,在app。
下创建一个名为libs的文件夹打开文件资源管理器,将jar文件复制并粘贴到libs文件夹中。
在Android Studio中,右键单击jar文件,然后从弹出菜单中选择Add as a Library ....
您应该会看到gradle文件中依赖项列表中列出的文件:
dependencies {
...
implementation files('libs/myfile.jar')
}
打开你的java文件,然后在那里添加import语句:
import com.xxx.xxx;
答案 18 :(得分:5)
menu File -> project struct -> module select "app" -> dependencies tab -> + button
-> File dependency -> PATH/myfile.jar
答案 19 :(得分:4)
创建文件夹libs。添加.jar文件。右键单击它,你会发现添加jar作为依赖。点击它。这就是你需要做的一切。 您可以找到添加到build.gradle文件的依赖项。
答案 20 :(得分:4)
1)创建一个&#39; your_libs&#39; Project / app / src文件夹中的文件夹。
2)将您的jar文件复制到这个&#39; your_libs&#39;夹
3)在Android Studio中,转到文件 - &gt;项目结构 - &gt;依赖关系 - &gt;添加 - &gt;文件依赖关系并导航到您的jar文件,该文件应位于&#39; src / your_libs&#39;
3)选择您的jar文件,然后单击“确定”
然后你可以在你的build.gradle上看到这样的:compile 文件(&#39; SRC / your_libs / your.jar&#39)
答案 21 :(得分:4)
在android Studio 1.1.0中。 我通过以下步骤解决了这个问题:
1:将jar文件放入libs目录。 (在Finder中)
2:打开模块设置,转到依赖关系,在左下角有一个加号按钮。单击加号按钮,然后选择&#34; File Dependency&#34;你可以看到你的jar文件。选择它并解决它。
答案 22 :(得分:4)
第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 。
答案 23 :(得分:4)
我已经阅读了这里的所有答案,它们似乎都涵盖旧版Android Studio!
使用Android Studio 2.2.3创建的项目我只需要在libs
下创建一个app
目录并将我的jar放在那里。
我使用文件管理器完成了这项操作,无需在Android Studio中单击或编辑任何内容。
为什么会这样?打开构建/编辑库和依赖关系,您将看到:
{include=[*.jar], dir=libs}
答案 24 :(得分:3)
libs
级添加了app
文件夹。 jars
。 libs
文件夹中的所有广告add library
我观察到 CTRL + ALT + SHIFT + S - &gt;项目结构 - &gt; app-module - &gt;依赖关系“最初在(dir: 'libs', include: '*.jar')
下已经有compile-option
条目。然后按照上述步骤添加jar后,build.gradle
获取了条目新添加的罐子本身。
答案 25 :(得分:3)
像之前指出的那样,你应该添加
compile files('libs/gson-2.2.3.jar')
到你的build.gradle文件。
但是我在Android Studio中有一个从Eclipse迁移的项目,在这种情况下是&#34; libs&#34;文件夹名为&#34; lib&#34;所以对我来说,删除&#34; s&#34;解决了这个问题。
答案 26 :(得分:3)
在 Android Studio 2.1 中,我按照这种方式,
转到应用 - &gt; SRC-&GT;主要 - &gt; 资产文件夹(如果不可用则创建它) - &gt;把你的JAR文件
在build.gradle中添加依赖项,
implementation files('src/main/assets/jsoup.jar')
implementation files('src/main/assets/org-apache-xmlrpc.jar')
implementation files('src/main/assets/org.apache.commons.httpclient.jar')
implementation files('src/main/assets/ws-commons-util-1.0.2.jar')
立即同步。 现在您的JAR文件已准备好使用。
答案 27 :(得分:3)
在Mac OS X上:
将jar添加为库(将jar拖到libs,右键单击add as lib)
将编译语句添加到build.grade
安装gradle v1.6
(使用自制程序)
gradle clean(重建android无效)
这把我排除在外。
答案 28 :(得分:2)
对于较新的Android 1.0.2,您的build.gradle文件中已经存在以下内容
implementation fileTree(include: ['*.jar'], dir: 'libs')
将库jar添加到libs文件夹 - &gt;右键单击库 - &gt;点击添加为库 - &gt;它要求您为其添加项目 - &gt;选择你的项目 - &gt;点击确定 以下行自动添加到build.gradle
implementation files('libs/android-query.jar')
那为我做了。没有必要了。我已经为android aquery展示了另一个用于android的第三方库。
答案 29 :(得分: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。最好创建一个包含我们的应用程序需要使用的jar包的文件夹'libs'。
但这也将允许支持Maven依赖。编译'com.google.code.gson:gson:2.3'
(如@saneryee所述)是另一种推荐的方法来添加中央远程存储库中的依赖项,而不是我们的/ libs“本地存储库”。它基本上告诉gradle查找该软件包的那个版本,它告诉编译器在编译项目时考虑它(在类路径中有它)
PS:我同时使用
答案 30 :(得分:1)
compile fileTree(dir: 'libs', include: '*.jar')
工作正常但compile files(...)
未使用Studio Beta 0.8.1进行测试
答案 31 :(得分:0)
我不喜欢&#39;知道为什么,但是当我尝试使用Gradle实现这些解决方案时,我的Android Studio 0.8.14会变得疯狂。我承认我对这个伟大的构建工具知之甚少,但是Studio为什么会破坏我的项目?我设法让它以这种方式工作:将android-support-v13.jar放入&#39; libs&#39;目录,然后我的项目上的F4并添加文件依赖项,我指向android-support-v13.jar。
答案 32 :(得分:0)
在我的情况下添加的库错过了一些依赖,但不幸的是Android Studio(0.8.14)将此作为秘密。
无需手动配置任何内容!我刚刚添加了缺少的库并使用了 app build.gradle
文件中的默认依赖项配置,就像这样
dependencies {
compile 'com.google.code.gson:gson:2.+'
compile fileTree(dir: 'libs', include: ['*.jar'])
}
答案 33 :(得分:0)
做到这一点:
在应用程序文件夹下创建libs文件夹。 将.jar文件添加到libs文件夹。 然后将.jar文件添加到app的build.gradle依赖项中。 最后使用Gradle文件同步项目。