提问



如何将库项目(例如Sherlock ABS)添加到Android Studio? [54]


(不是旧的基于Eclipse的ADT捆绑包,而是新的Android Studio。)[55]

最佳参考


Android Studio 1.0更新


自Android Studio 1.0发布以来(v1.0与我之前回答时的第一个版本之间的很多版本),一些事情发生了变化。


我的描述侧重于通过Gradle文件手动添加外部库项目(以便更好地理解该过程)。如果你想通过Android Studio创建者添加一个库,只需用视觉指南检查下面的答案(Android Studio 1.0和截图中的一些差异,但过程非常相似)。


在开始手动向项目添加库之前,请考虑添加外部依赖项。它不会搞乱您的项目结构。几乎所有知名的Android库都可以在Maven存储库中使用,其安装只需要app/build.gradle文件中的一行代码:[57]


dependencies {
     compile 'com.jakewharton:butterknife:6.0.0'
}


添加图书馆


以下是将外部Android库添加到项目的完整过程:



  1. 通过Android Studio创建者创建新项目。我把它命名为 HelloWorld 。

  2. 以下是Android Studio创建的原始项目结构:




HelloWorld/
      app/
           - build.gradle  // local Gradle configuration (for app only)
           ...
      - build.gradle // Global Gradle configuration (for whole project)
      - settings.gradle
      - gradle.properties
      ...




  1. 在根目录(HelloWorld/)中,创建新文件夹:/libs,我们将在其中放置外部库(此步骤不是必需的 - 仅用于保持更清晰的项目结构)。/li>
  2. 将库粘贴到新创建的/libs文件夹中。在这个例子中,我使用了PagerSlidingTabStrip库(只需从GitHub下载ZIP,将库目录重命名为PagerSlidingTabStrip并复制它)。这是我们项目的新结构:




HelloWorld/
      app/
           - build.gradle  // Local Gradle configuration (for app only)
           ...
      libs/
           PagerSlidingTabStrip/
                - build.gradle // Local Gradle configuration (for library only)
      - build.gradle // Global Gradle configuration (for whole project)
      - settings.gradle
      - gradle.properties
      ...




  1. 通过将库添加到include来编辑settings.gradle。如果您像我一样使用自定义路径,则还必须为我们的库定义项目目录。整个settings.gradle应如下所示:[58]


    include ':app', ':PagerSlidingTabStrip'
    project(':PagerSlidingTabStrip').projectDir = new File('libs/PagerSlidingTabStrip')
    



5.1如果您遇到默认配置错误,请尝试此操作而不是步骤5,


    include ':app'
    include ':libs:PagerSlidingTabStrip'



  1. app/build.gradle中添加我们的库项目作为依赖:


    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        compile 'com.android.support:appcompat-v7:21.0.3'
        compile project(":PagerSlidingTabStrip")
    }
    



6.1。如果你按照步骤5.1,那么按照这个而不是6,


    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        compile 'com.android.support:appcompat-v7:21.0.3'

        compile project(":libs:PagerSlidingTabStrip")
    }



  1. 如果您的图书馆项目没有build.gradle文件,则必须手动创建。以下是该文件的示例:


        apply plugin: 'com.android.library'
    
        dependencies {
            compile 'com.android.support:support-v4:21.0.3'
        }
    
        android {
            compileSdkVersion 21
            buildToolsVersion "21.1.2"
    
            defaultConfig {
                minSdkVersion 14
                targetSdkVersion 21
            }
    
            sourceSets {
                main {
                    manifest.srcFile 'AndroidManifest.xml'
                    java.srcDirs = ['src']
                    res.srcDirs = ['res']
                }
            }
        }
    

  2. 此外,您可以为项目创建全局配置,其中包含每个模块的SDK版本和构建工具版本以保持一致性。只需编辑gradle.properties文件并添加行:


    ANDROID_BUILD_MIN_SDK_VERSION=14
    ANDROID_BUILD_TARGET_SDK_VERSION=21
    ANDROID_BUILD_TOOLS_VERSION=21.1.3
    ANDROID_BUILD_SDK_VERSION=21
    


    现在您可以在build.gradle文件(在应用程序和库模块中)中使用它,如下所示:


    //...
    android {
        compileSdkVersion Integer.parseInt(project.ANDROID_BUILD_SDK_VERSION)
        buildToolsVersion project.ANDROID_BUILD_TOOLS_VERSION
    
        defaultConfig {
            minSdkVersion Integer.parseInt(project.ANDROID_BUILD_MIN_SDK_VERSION)
            targetSdkVersion Integer.parseInt(project.ANDROID_BUILD_TARGET_SDK_VERSION)
        }
    }
    //...
    

  3. 就是这样。只需单击,将项目与Gradle'图标同步。您的图书馆应该在您的项目中可用。



Google I/O 2013 - 新的Android SDK构建系统是一个关于使用Gradle Build System构建Android应用程序的精彩演示:正如Xavier Ducrohet所说:[59]



  Android Studio完全是关于编辑,调试和分析。
  这不再是建筑了。



一开始它可能有点令人困惑(特别是那些使用Eclipse并且从未见过蚂蚁的人 - 比如我;)),但最后Gradle给了我们一些很好的机会,值得学习这个构建系统。 [60]

其它参考1


这是视觉指南:


Android Studio 0.8.2的更新:


在Android Studio 0.8.2中,转到模块下的项目结构 - >,只需点击加号按钮并选择导入现有项目并导入actionbarsherlock。然后同步Gradle文件。


如果您遇到错误



  错误:SDK Build Tools修订版(xx.x.x)太低。最低限度
  要求是yy.y.y



只需打开actionbarsherlock目录中的build.gradle文件,然后将buildToolsVersion更新为建议的文件。


android {
  compileSdkVersion 19
  buildToolsVersion 'yy.y.y'








菜单文件 - > 项目结构...... :





模块 - > 导入模块





导入库模块后,选择您的项目模块并添加依赖项:





然后选择导入的模块:




其它参考2


使用菜单文件 - > 项目结构 - > 模块。


我今天开始使用它。它有点不同。


对于Sherlock,也许您想删除他们的测试目录,或者将junit.jar文件添加到类路径中。


要使用gradle导入库,您必须将其添加到build.gradle [[模块的一个]]的dependencies部分。


例如。


dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:22.1.0'
    compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar'
}


Android Studio正在发生变化。


如果您有一个名为打开模块设置的部分
右键单击Android项目部分中的模块文件夹
Studio(我使用的是0.2.10版本)。

其它参考3


我会考虑依赖,Android库和多项目设置必要的阅读。请花几分钟时间。[61]


特别是,对于非jar库项目,请从上面的源代码中阅读以下代码段:



  Gradle项目还可以通过使用多项目设置来依赖其他gradle项目。
  多项目设置通常通过将所有项目作为给定根项目的子文件夹来工作。

  
  例如,给出以下结构:



MyProject/
 + app/
 + libraries/
    + lib1/
    + lib2/



  我们可以识别3个项目。 Gradle将使用以下名称引用它们:



:app
:libraries:lib1
:libraries:lib2



  每个项目都有自己的build.gradle来声明它是如何构建的。
  此外,根目录中会有一个名为settings.gradle的文件,用于声明项目。
  这给出了以下结构:



MyProject/
 | settings.gradle
 + app/
    | build.gradle
 + libraries/
    + lib1/
       | build.gradle
    + lib2/
       | build.gradle



  settings.gradle的内容非常简单:



include ':app', ':libraries:lib1', ':libraries:lib2'



  这定义了哪个文件夹实际上是Gradle项目。

  
  :app项目可能依赖于库,这是通过声明以下依赖项来完成的:



dependencies {
    compile project(':libraries:lib1')
}


请注意,很少或根本没有使用Android Studio GUI来实现这一目标。


我目前正在使用git子模块将嵌套库链接到实际的库git repo,以避免依赖混乱。 [62]

其它参考4


我刚刚找到了一种更简单的方法(而不是直接写入.gradle文件)。


这适用于Android Studio 1.1.0。



  1. 菜单文件 - > 新模块... :





    单击导入现有项目。

  2. 选择所需的库和所需的模块。

  3. 点击完成。
    Android Studio会将库导入您的项目。它将同步gradle文件。

  4. 将导入的模块添加到项目的依赖项中。


    右键单击应用程序文件夹 - >打开模块设置 - >转到依赖项选项卡 - >单击+按钮 - >单击模块依赖项。


    然后将库模块添加到项目的依赖项中。




  5. ???

  6. 利润


其它参考5


我发现包含外部库项目的最简单方法是(例如,包含一个存储在依赖项文件夹中的一个目录的Facebook库):



  1. 在settings.gradle中添加


    include ':facebook'
    
    project(':facebook').projectDir = new File(settingsDir, '../dependencies/FacebookSDK')
    

  2. 在build.gradle依赖项部分中,添加


    compile project ('facebook')
    



剩下要做的就是将项目与gradle文件同步。

其它参考6


将JAR文件作为库添加到Android Studio项目的简单方法:


a)复制* .jar文件


b)粘贴到项目下的 libs 目录中:





c)添加到build.gradle:


dependencies {
    ...
    compile files('libs/ScanAPIAndroid.jar', 'libs/ScanAPIFactoryAndroid.jar', .., ..)
}


b)如果您的项目来自示例com.example.MYProject和库com.example.ScanAPI具有相同的命名空间com.example ,Android Studio将检查您的构建并在项目中创建所有必要的更改。之后,您可以在菜单文件 - > 项目结构中查看这些设置。


c)如果您的项目和库具有不同的命名空间,您必须右键单击该库并选择添加为库选项并选择所需的类型。


请记住,项目结构选项未在当前版本的Android Studio(0.2.3)中的build.gradle中进行任何自动更改。也许这个功能将在下一个版本中提供。

其它参考7


选项1:将文件拖放到项目的libs/目录



然后,相关的build.gradle文件将自动更新。


选项2:手动修改build.gradle文件



打开build.gradle文件,并将新的构建规则添加到依赖项闭包中。例如,如果您想添加Google Play服务,您的项目的依赖项部分将如下所示:


dependencies {
     compile fileTree(dir: 'libs', include: ['*.jar'])
     compile 'com.google.android.gms:play-services:6.5.+'
   }


选项3:使用Android Studio的用户界面



在项目面板中, Control +单击要添加依赖关系的模块,然后选择打开模块设置。





选择Dependencies选项卡,然后选择左下角的+按钮。您可以从以下选项列表中进行选择:



  • 图书馆依赖

  • 文件依赖

  • 模块依赖



然后,您可以输入有关要添加到项目中的依赖项的更多信息。例如,如果选择Library Dependency,则Android Studio会显示一个库列表供您选择。


一旦添加了依赖项,请检查模块级build.gradle文件。它应该已自动更新以包含新的依赖项。


[63]

其它参考8


如果需要访问库项目的资源(与ABS一样),请确保将库项目/模块添加为模块依赖项而不是库。

其它参考9


这就是我在Android Studio 1.5

中的工作原理

在要添加外部库项目的项目中,
转到菜单文件 - > 新建 - > *导入新模块**,导航到要添加到项目中的库项目,选择添加库项目中的模块。您将在项目中获得 settings.gradle ,包括app,包含的库,如下所示:


include ':app', ':library'


在依赖项部分中添加 build.gradle(Module:app):


编译项目(:library)


重建项目,就是这样。


*您可以根据需要添加任意数量的库(模块)。在settings.gradle的情况下,您将拥有:


 include ':app', ':lib1', ':lib2', ...


在build.gradle中,你需要:


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

    // Some other dependencies...

    compile project(':lib1')
    compile project(':lib2')
    ...
}

其它参考10



  1. F4 显示项目结构,单击库或全局库,然后单击 + 添加JAR文件。

  2. 单击要添加jar的模块,选择依赖关系选项卡,单击 + ,然后添加库。


其它参考11


你可以轻松地做到这一点。转到菜单文件 - > 新 - > 导入模块... :


[64]


浏览包含该模块的目录。单击完成:


[65]


转到项目结构并添加模块依赖项:


[66]


注意:如果收到SDK错误,请更新该错误。

其它参考12


要添加答案:如果IDE没有显示任何错误,但是当您尝试编译时,您会得到类似的结果:


No resource found that matches the given name 'Theme.Sherlock.Light'


您的库项目可能被编译为应用程序项目。要更改此信息,请转到:


菜单文件 - > 项目结构 - > Facets - > [[库名]] - >选中库模块。

其它参考13


不建议通过GUI编辑库依赖项,因为它不会将这些更改写入build.gradle文件。因此,您的项目不会从命令行构建。我们应该直接编辑build.gradle文件,如下所示。


例如,给出以下结构:


我的项目/



  • 应用程序/

  • 库/


    • LIB1/

    • LIB2/




我们可以确定三个项目。 Gradle将使用以下名称引用它们:



  1. :应用

  2. :库:LIB1

  3. :库:LIB2



:app项目可能依赖于库,这是通过声明以下依赖项来完成的:


dependencies {
    compile project(':libraries:lib1')
}

其它参考14


导入ABS模块(从文件>项目结构)并确保它具有Android 2.2和支持库v4作为依赖项后,我仍然收到以下错误@Alex


Error retrieving parent for item: No resource found that matches the given name 'Theme.Sherlock.Light.DarkActionBar'


我将新导入的模块添加为我的主应用程序模块的依赖项,并修复了问题。

其它参考15


要解决此问题,您只需将abs资源路径添加到项目构建文件中,如下所示:


sourceSets {
    main {
        res.srcDirs = ['src/main/res','../../ActionBarSherlock/actionbarsherlock/res']
    }
}


所以,我再次编译没有任何错误。

其它参考16


第一种方式这适用于MacBook。


首先在给定屏幕中选择builder.gradle文件:


[67]


在所选屏幕上添加依赖项,如:


[68]


选择同步项目。


如果您收到类似带路径的项目的错误:在项目中找不到签名板:app,那么请使用第二种方式:


选择菜单文件 - > 新 - > 导入模块... :


[69]


点击导入模块后,


[70]


像我的MacBook路径一样给出库的路径:


[71]


单击完成。现在您的库已添加。

其它参考17


如果你有Android Studio .0.4.0,你可以在你的构建路径中创建一个新文件夹,YourApp/libraries。复制JAR文件。在里面,右键单击它并添加为库。现在你有一个弹出窗口。只需选择您的目录,然后按确定即可。

其它参考18


https://www.dropbox.com/s/1e3eteu3h0pmkf7/Android%20studio%20_doc.doc?dl=0是如何在最新版本的Android Studio 1.0.1中添加JAR文件和库项目的Dropbox链接。 [72]


请参阅带有屏幕截图的文档。这对新用户来说非常容易。

其它参考19


我找到了解决方案。这很简单。按照froger_mcs说明。


确保在项目结构 - >模块(源)中将src文件夹设为源文件夹。




其它参考20


成功添加另一个库(PullToRefresh)的示例。也适用于ABS libproject。


这个SO问题


这篇文章[75]

其它参考21


基本上,您可以通过三种不同的方式包含JAR文件。最后一个是使用https://bintray.com/jcenter在线存储库的远程库。但是,如果您使用其他两种方法之一,JAR文件将物理地包含在您的项目中。有关更多信息,请阅读此链接https://stackoverflow.com/a/35369267/5475941。在这篇文章中,我解释了如何在Android studio中导入JAR文件,并解释了所有可能的方法。[76]


总之,如果它是这样(本地地址),它们将被下载并且这些JAR文件实际上在项目中:


[78]


但是,如果它是这样的互联网地址,它们是远程库(bintray.com jcenter部分),它们将被远程使用:


[79]


我希望它有所帮助。

其它参考22


打开构建gradle模块应用程序文件并添加您的依赖项。如果您下载库,只需导入并构建为gradle。


否则,在side gradle模块应用程序中添加存储库:


repositories {
        maven { url 'http://clinker.47deg.com/nexus/content/groups/public' }
}


第一个存储库将为您下载库。


并编译下载的库:


 compile ('com.fortysevendeg.swipelistview:swipelistview:1.0-SNAPSHOT@aar') {
        transitive = true
    }


如果要创建库,则只需将项目导入为导入新模块。

其它参考23


在Android Studio中,转到app内部文件夹,然后打开build.gradle文件。在这里,您将看到依赖项{}。在其中,您可以添加库项目并进行同步。现在,在同步库之后,它将被添加到项目中,您可以在项目中使用它的函数和类。

其它参考24


对于Android Studio:


[80]


单击 Build.gradle(module:app)。


并添加


dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile files('libs/commons-io-2.4.jar')
}


并在您的目录app中,创建一个目录libs。添加文件yourfile.jar:


[81]


最后,编译Gradle文件:


[82]

其它参考25


只需将Android库项目作为模块导入,然后导入 Build.gradle


申请插件:com.android.library


之后,请按照下列步骤操作:



  1. 右键单击Module&选择打开模块设置

  2. 选择依赖项,单击 + ,选择库依赖项,然后添加以前导入的模块。


其它参考26


对于人们来说,我有一个不同的问题原因:


repositories {
    mavenCentral()
}


将mavenCentral()更改为jcenter()并添加


allprojects {
    repositories {
        jcenter()
    }
}

其它参考27


Android Studio 3.0



只需将库名添加到应用程序的 build.gradle 文件的依赖项块中。


dependencies {
    // ...
    implementation 'com.example:some-library:1.0.0'
}


请注意,您现在应该使用implementation而不是compile。这是Android Studio 3.0的新功能。有关差异的解释,请参阅此Q& A.

其它参考28


我也遇到了同样的问题然后我做了以下事情。



  1. 我使用菜单文件 - >导入模块菜单将库项目作为模块导入到我的AndroidStudio IDE中

  2. 然后我去了我的主要模块,我希望将库项目作为依赖项目

  3. 右键单击主模块(在我的情况下,其名称为 app ) - >打开模块设置 - >进入依赖项选项卡 - >单击+按钮(您将在右侧获取它)窗口) - >单击模块依赖关系 - >从列表中选择您的库项目



应用更改并单击确定按钮。


它对我有用。我希望它也能帮助别人。

其它参考29


事实上,随着版本的变化,改变菜单上的用户界面和选项也是如此。在阅读了这些问题的大多数答案之后,我不得不猜测什么对 Android Studio 1.1.0 有用。



  1. 使用鼠标,在主级别选择项目(这是显示应用程序名称的位置)。

  2. 右键单击,然后选择菜单选项新建,文件夹,资源文件夹

  3. 创建assets文件夹后,粘贴或复制它,无论您的库需要什么JAR文件。

  4. 从Android Studio的主菜单(屏幕顶部)选择文件 - > Project结构。

  5. 然后选择您的项目名称并转到依赖关系标签。

  6. 单击对话框左下角的加号( + ),然后选择文件依赖项。

  7. 最后打开最近创建的资源文件夹,选择您复制的JAR文件,然后单击应用和确定



清理并重建您的项目。