如何在IntelliJ IDEA中添加外部库?


94

我试图将外部库(将其放置在/ libs目录中)添加到我的项目中。当我尝试使用该库中的方法时,我看到它们是红色的,这意味着该库无法识别。当我单击Ctrl + B时​​,出现一条消息“找不到要转到的声明”。

我使用以下步骤添加库(JAR文件):1.将库文件复制到/ libs dir 2.打开项目结构->全局库->附加分类3.找到库并单击确定

这是正确的方法吗?

PS。我正在尝试以这种方式添加AdMob .jar文件。

Answers:


156

最新版本的简化程序:

  • 将jar复制到应用程序中的libs目录(如果不存在,则可以创建目录)
  • 刷新项目,使库显示在结构中(右键单击项目顶层,刷新/同步)
  • 展开库并右键单击罐子
  • 选择“添加为库”

完成了


1
这家伙只存在,因为IDEA 13.我问的问题,我认为当它是IDEA 9
sandalone

2
@sandalone此时无关紧要。今天登陆这里的人们最有可能使用的是目前支持这种简单方法的IDE
德国

4
“将jar复制到应用程序中的libs目录”-但是“应用程序”中没有libs目录。我的应用程序目录中只有out和src目录。因此,我创建了一个名为“ libs”的新目录,并将该jar放入其中。但是我不知道这是什么方向。然后“刷新项目,使libs显示在结构中”。我找不到“刷新”的命令。如何刷新项目?初学者很难过。:-(
Rafael_Espericueta 2015年


1
“扩展库并右键单击jar”是不正确的。将jar复制到“ lib”文件夹中后,应右键单击“ lib”文件夹,然后选择“添加为库...”
Gerard Verbeek

64

我已使用此过程将第3方Jar附加到IDEA中的Android项目。

  • 将Jar复制到您的libs /目录中
  • 打开项目设置(Ctrl Alt Shift S)
  • 在左侧的“项目设置”面板下,选择“模块”
  • 在较大的右窗格中,选择“依赖关系”选项卡
  • 按屏幕最右边的添加...按钮(如果您的屏幕较小,例如我,可能需要向右拖动调整大小才能看到它)
  • 从添加选项的下拉菜单中,选择“库”。出现“选择库”对话框。
  • 按“新图书馆...”
  • 为图书馆选择合适的标题
  • 按“附加课程...”
  • 从您的libs /目录中选择Jar,然后按OK关闭

现在应该可以识别该库了。


您是否尝试附加AdMob库?完成这些步骤后,清单文件中仍然有com.google.ads.AdActivity包。
sandalone 2011年

忘记写下清单中的软件包名称仍然是红色(系统看不到它),并且Ctrl + B仍然不起作用。
sandalone 2011年

1
@bergnam,您的问题可能是由解析混淆类的错误引起的,请参阅youtrack.jetbrains.net/issue/IDEA-71456
CrazyCoder 2011年

嗯,可能是。唯一的区别是该库可以工作,但是清单自动完成功能无法识别它。它以红色显示,我无法通过Ctrl + Space添加软件包,但必须手动输入它们。
sandalone 2011年

完成这些步骤后,我必须运行mvn clean程序包才能访问该库。
珍(Jenn)2015年

9

Intellij IDEA 15:文件->项目结构...->项目设置->库


如果您不想在一个简单的项目中增加Maven / gradle / ant的构建复杂性,这是最简单的解决方案
Pierre

同意 另外,为什么要在每个项目中制作同一JAR文件的多个副本?
理查德·埃尔金斯

2

从长远来看,更好的方法是将Gradle集成到您的项目环境中。它是Java的构建工具,现在已在android开发空间中大量使用。

您将需要制作一个.gradle文件并列出您的库依赖项。然后,您需要做的就是使用Gradle将项目导入IntelliJ。

干杯


1

如果可以在全局库中找到必要的jar文件,也可以扩展此问题,如何将其配置到当前项目中。

像这样的过程:“项目结构”->“模块”->“单击右侧的当前项目窗格”->“依赖项”->“单击添加(+)小按钮”->“库” ->“选择所需的库”。

如果您正在使用maven,并且还可以在pom.xml中配置依赖项,但是如果您选择的版本与全局库不同,则在存储同一jar文件的另一个版本时会浪费内存。所以我建议使用第一步。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.