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

99

我正在尝试将外部库(放置在 /libs 目录中)添加到我的项目中。当我尝试使用该库中的方法时,我发现它们是红色的,这意味着该库未被识别。当我按下 Ctrl+B 时,会收到一条消息“无法找到要跳转的声明”。

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

这样做是否正确?

附:我尝试以此方式添加 AdMob .jar 文件。

5个回答

159

最新版本的简单步骤:

  • 将jar包复制到应用程序的libs目录中(如果没有,可以创建该目录)
  • 刷新项目以便在结构中显示libs文件夹(右键单击项目顶层,刷新/同步)
  • 展开libs并右键单击jar包
  • 选择“添加为库”

完成


1
这个只存在于 IDEA 13 以后的版本。我问过这个问题,当时是在 IDEA 9 版本。 - sandalone
3
@sandalone 这已经不重要了。今天来到这里的人大多数都使用支持这种简单方法的IDE了。 - German
4
将 jar 文件复制到应用程序的 libs 目录中。但是在该应用程序中没有 libs 目录。我的应用程序目录中只有 out 和 src 目录。因此我创建了一个名为“libs”的新目录,并将 jar 文件放入其中。但我不知道这是否符合指示意图...然后“刷新项目以便 libs 出现在结构中”。我找不到“刷新”的命令。如何刷新项目?初学者很难。 :-( - Rafael_Espericueta
1
这个答案更整洁。https://dev59.com/G3NA5IYBdhLWcg3wNa-T - Herupkhart
1
扩展库并右键单击jar文件是不正确的。当您将jar文件复制到“lib”文件夹中后,应右键单击“lib”文件夹,然后选择“添加为库…”。 - Henk
显示剩余5条评论

64

我曾使用这个过程在IDEA中将第三方Jar包附加到Android项目。

  • 将Jar包复制到libs/目录下
  • 打开项目设置(Ctrl Alt Shift S)
  • 在左侧的项目设置面板中选择模块
  • 在右侧的更大面板上选择依赖项选项卡
  • 在屏幕最右侧按“添加…”按钮(如果你像我一样有一个较小的屏幕,则可能需要拖动调整大小才能看到它)
  • 从添加选项的下拉菜单中选择“库”。一个“选择库”对话框将出现。
  • 按“新建库…”
  • 为库选择一个合适的标题
  • 按“附加类…”
  • 从libs/目录中选择Jar包,然后按OK键关闭

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


你尝试过附加 AdMob 库吗?在这些步骤之后,我的 Manifest 文件中仍然有 com.google.ads.AdActivity 包。 - sandalone
忘记写清单文件中的包名仍然是红色的(系统看不到它),Ctrl+B 仍然不起作用。 - sandalone
1
@bergnam,你的问题可能是由于混淆类的解析错误引起的,请参考http://youtrack.jetbrains.net/issue/IDEA-71456。 - CrazyCoder
嗯,可能吧。这里唯一的区别是这个库可以工作,但它没有被清单自动完成识别。它会变成红色,我不能通过Ctrl+Space添加包,而必须手动输入它们。 - sandalone
在按照这些步骤后,我需要运行 mvn clean package 命令来使库文件可被访问。 - Jenn

9

Intellij IDEA 15:

文件->项目结构...->项目设置->库


1
如果您不想将Maven/Gradle/Ant构建复杂性添加到简单项目中,最简单的解决方案。 - Pierre
同意。另外,为什么要在每个项目中制作相同的JAR文件的多个副本? - Richard Elkins

2

从长远来看,更好的方法是将Gradle集成到您的项目环境中。 它是Java的构建工具,并且现在在Android开发领域中被广泛使用。

您需要创建一个.gradle文件并列出库依赖项。 然后,您只需要使用Gradle在IntelliJ中导入项目即可。

干杯


2
这个问题还可以扩展,如果必要的话,可以在全局库中找到jar文件,那么如何将其配置到当前项目中呢?
步骤如下: "项目结构" -> "模块" -> "单击右侧的当前项目窗格" -> "依赖项" -> "单击小加号(+)按钮" -> "库" -> "选择您想要的库"。
如果您正在使用maven,也可以在pom.xml中配置依赖项,但是如果您选择的版本不像全局库,则会浪费存储另一个版本相同的jar文件的内存。因此我建议使用第一步。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接