64

我最近下载了 Android Studio 来开发 Android 应用程序(我来自 Eclipse),并且在我自己的项目中使用外部库和/或外部 JAR 文件时遇到问题。注意:以下测试是在 Android Studio 中从头开始创建的新应用程序项目上进行的。

示例 1:JAR 导入。

  1. 从 Google 下载 Admobs SDK 的新副本。

  2. 将库 jar 复制GoogleAdMobAdsSdk-6.4.1.jar到项目的 /libs/ 文件夹。

  3. 在项目资源管理器中,右键单击新添加的 library.jar,然后单击“添加为库”。

从技术上讲,此时一切正常,导入工作正常,布局编辑器显示AdView小部件的预览等等。唯一的问题是它没有编译成功。

从控制台登录:

Gradle: 
FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':APITests:compilePaidDebug'.
> Compilation failed; see the compiler error output for details.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

Could not execute build using Gradle distribution 'http://services.gradle.org/distributions/gradle-1.6-bin.zip'.

我尝试运行gradlew compileDebug --stacktrace,问题似乎是尽管能够在代码和设计编辑器中成功导入类,但在编译时,它无法解析导入。这是日志的相关部分:(此处为完整堆栈跟踪

java:6: error: package com.google.ads does not exist
import com.google.ads.AdRequest;    
java:7: error: package com.google.ads does not exist
import com.google.ads.AdView;
java:11: error: cannot find symbol
AdView mAdView;
symbol:   class AdView
location: class MainActivity
java:22: error: cannot find symbol
mAdView = (AdView)this.findViewById(R.id.adView);
symbol:   class AdView
location: class MainActivity
java:23: error: cannot find symbol
mAdView.loadAd(new AdRequest());
symbol:   class AdRequest
location: class MainActivity
5 errors
:Test:compileDebug FAILED

但同样,导入在编辑器中运行良好,并且依赖项存在:

在此处输入图像描述

还值得注意的是,在不尝试添加库/JAR 的情况下,项目编译得很好。

然后我尝试编辑 build.gradle 文件以包含新的库,如下所示:

dependencies {
compile files('libs/android-support-v4.jar', 'libs/GoogleAdMobAdsSdk-6.4.1.jar')
}

这一次,它确实编译成功,但应用程序现在强制关闭,显然,它无法从应用程序包中的 lib 中找到特定类。

Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.ads.AdView" on path: /data/app/com.foo.test-1.apk

有任何想法吗?

4

12 回答 12

99

所以,

使用 Android Studio 0.1.1 将 JAR 成功导入项目的步骤:

  • 下载 library.jar 文件并将其复制到应用程序项目中的 /libs/ 文件夹中。
  • 打开 build.gradle 文件并编辑您的依赖项以包含新的 .jar 文件:

compile files('libs/android-support-v4.jar', 'libs/GoogleAdMobAdsSdk-6.4.1.jar')

  • 文件 -> 关闭项目
  • 在项目的根位置打开命令提示符,即'C:\Users\Username\AndroidStudioProjects\MyApplicationProject\'
  • 在命令提示符下,键入gradlew clean,等待完成。
  • 在 Android Studio 中重新打开您的应用程序项目。
  • 测试运行您的应用程序,它应该可以成功运行。
于 2013-05-29T16:09:36.550 回答
31

您无需关闭项目并转到命令行来调用grade:clean。转到构建-> 重建项目

于 2013-06-11T04:16:06.690 回答
16

简单的方法,它对我有用。使用 Android Studio 0.8.2。

  1. 将 jar 文件拖到 libs 下。
  2. 按“与 Gradle 文件同步项目”按钮。

在此处输入图像描述

于 2014-07-23T13:57:35.513 回答
13

“简单的解决方案就在这里”

1 .在项目中的任何目录下的应用程序目录下创建一个名为libs的文件夹..

2. 将您的库复制粘贴libs文件夹

3.You simply copy the JAR to your libs/ directory and then from inside Android Studio, right click the Jar that shows up under libs/ > Add As Library..

和平!

于 2014-11-23T19:30:11.127 回答
10

这是我专门针对admob sdk jar文件的方法:

  1. jar文件拖到 libs 文件夹中。
  2. 右键单击该jar文件并选择添加库 现在 jar 文件是一个库,让我们将其添加到编译路径
  3. 打开build.gradle文件(注意至少有两个build.gradle文件,不要使用根目录,使用项目范围内的一个)。
  4. 找到依赖项部分(对我来说,我正在尝试使用 admob -GoogleAdMobAdsSdk jar 文件),例如

    dependencies {
       compile files('libs/android-support-v4.jar','libs/GoogleAdMobAdsSdk-6.3.1.jar')
    }
    
  5. 最后进入settings.gradle并确保它看起来像这样:

    include ':yourproject', ':yourproject:libs:GoogleAdMobAdsSdk-6.3.1'
    
  6. 最后,转到Build -> Rebuild Project
于 2013-07-04T15:43:22.080 回答
2

您从 Eclipse 导出项目,然后从 Android Studio 导入项目,这应该可以解决您的问题,打开一个 Eclipse 项目而不从 Android Studio 导入它可能会导致问题,请看:(对不起,我会说西班牙语。) http ://developer.android.com/intl/es/sdk/installing/migrate.html

于 2013-05-28T01:54:57.460 回答
2

我遇到了无法在 Android Studio 的 libs 文件夹中加载 jar 文件的问题。如果您在 libs 文件夹中添加了 JAR 文件,则只需打开build.gradle文件并保存它,无需编辑任何其他内容。如果您已添加此行

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

保存并清理项目。在下一次构建时,Android Studio 将加载 JAR 文件。

希望这可以帮助。

于 2015-04-30T09:55:15.197 回答
1

我正在使用 Android Studio 0.5.2。因此,如果您的版本低于我的版本,我的答案可能对您不起作用。

向项目添加新 Jar 的 3 种方法:

  1. 文件下的菜单-->项目结构
  2. 只需按' F4 '
  3. 在项目导航下,右键单击任何 java 库并显示上下文菜单,然后单击“打开库设置

将弹出一个项目结构窗口。

在左栏中单击“库”,然后查看右侧窗格中的加号“+”并单击它,然后输入新库的路径。

确保新库位于 'project\libs\' 文件夹下,否则在保存项目源代码时可能会出现断开的链接。

于 2014-05-19T19:02:30.863 回答
1

我目前正在使用 Android Studio 1.4。

对于导入和添加库,我使用了以下流程 ->

1. Press **Alt+Ctr+Shift+S** or Go to **File --> Project** Structure to open up the Project Structure Dialog Box.

2. Click on **Modules** to which you want to link the JAR to and Go to the Dependency Tab.

3. Click on "**+**" Button to pop up Choose Library Dependency.

4. Search/Select the dependency and rebuild the project.

我使用上述方法导入支持 v4 和 v13 库。

我希望这会有所帮助并清理流程。

于 2015-10-03T22:06:33.483 回答
0

我使用 android studio 0.8.6 并在项目中导入外部库,将该库粘贴到 libs 文件夹中,然后在 build.gradle 中写入该库在依赖项中的路径,例如编译文件('libs/google-play-services.jar')

于 2014-09-30T12:16:56.143 回答
0

在 Android Studio(我的是 2.3.1)中,转到文件 - 项目结构:

在此处输入图像描述

于 2017-05-03T12:04:50.127 回答
-2

检查库版本要求。该库可能正在尝试从更高的 Android 版本调用方法。尝试添加应用程序兼容性库。

当所有其他方法都失败时,尝试从 Gradle 构建切换到 Eclipse 构建。

删除文件夹并将其重组为 eclipse 样式,并删除除代码之外的所有内容。然后用你的库重新加载项目。

如果你愿意,一旦它运行返回 Gradle。

于 2016-01-11T17:17:55.610 回答