Android Studio - 导入外部库/ Jar

时间:2013-05-27 20:12:29

标签: android intellij-idea dependencies gradle android-studio

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

示例1:JAR导入。

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

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

  3. 在项目浏览器中,右键单击新添加的library.jar,然后单击“Add as Library”。

  4. 从技术上讲,一切正常,导入工作正常,布局编辑器显示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,问题似乎是尽管能够在代码和代码中成功导入类。设计编辑器,在编译时,它无法解析导入。以下是日志的相关部分:(full stacktrace here

    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
    

    但同样,导入在编辑器中运行良好,依赖性就在那里:

    enter image description here

    值得注意的是,如果不尝试添加库/ JAR,项目编译就可以了。

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

    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
    

    有什么想法吗?

12 个答案:

答案 0 :(得分: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中重新打开您的应用程序项目。
  • 测试运行您的应用程序,它应该成功运行。

答案 1 :(得分:31)

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

答案 2 :(得分:16)

简单的方法,它适用于我。使用Android Studio 0.8.2。

  1. 在libs下拖动jar文件。
  2. 按"将项目与Gradle文件同步"按钮。
  3. enter image description here

答案 3 :(得分:13)

"简单的解决方案就在这里"

1.在app目录下创建一个名为 libs 的文件夹,以确定项目中的任何目录。

2. 将您的资料库粘贴图书馆文件夹

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..

和平!

答案 4 :(得分:10)

以下是我如何专门针对 admob sdk jar 文件:

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

    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 - >重建项目

答案 5 :(得分:2)

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

答案 6 :(得分:2)

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

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

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

希望这有帮助。

答案 7 :(得分:1)

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

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

  1. 文件 - >项目结构
  2. 下的菜单
  3. 只需按' F4 '
  4. 即可 项目导航下的
  5. ,任何java库的右键碰撞和上下文菜单都会显示,然后点击“打开库设置
  6. 将弹出“项目结构”窗口。

    在左栏中点击“图书馆”,然后查看右侧窗格,其中有一个加号'+',然后点击它,然后输入新图书馆的路径。

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

答案 8 :(得分: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库。

我希望这有用并清除流程。

答案 9 :(得分:0)

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

答案 10 :(得分:0)

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

enter image description here

答案 11 :(得分:-2)

检查libs版本要求。 lib可能试图从更高的Android版本调用方法。尝试添加apps compatability libs。

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

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

一旦运行,如果您愿意,请返回Gradle。