【问题标题】:Add github library as dependency to Android-Studio project将 github 库添加为 Android-Studio 项目的依赖项
【发布时间】:2014-03-14 22:55:47
【问题描述】:

我正在尝试从https://github.com/chrisbanes/ActionBar-PullToRefresh/wiki/QuickStart-ABC 实施 ActionBar-PullToRefresh。我刚刚从 Eclipse 切换到 Android-Studio,所以我对 AS 和 Gradle 完全陌生。

克里斯班斯在网站上写道:

将 ActionBar-PullToRefresh 添加到项目中的最简单方法是通过 Gradle,您只需将以下依赖项添加到您的 build.gradle:

dependencies {  
    mavenCentral()
    compile 'com.github.chrisbanes.actionbarpulltorefresh:extra-abc:+'
}

这是否意味着我不必下载库,Gradle 会处理它,以便我始终拥有最新版本?我只是不知道把上面的行放在哪里。我的根目录中有两个 gradle.build 文件,其中一个看起来像:

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.8.+'
    }
}

我项目中的那个看起来像:

apply plugin: 'android'

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
    compile 'com.android.support:support-v4:18.0.+'
    compile 'com.android.support:appcompat-v7:18.0.+'
}

android {
    compileSdkVersion 19
    buildToolsVersion "19.0.1"

    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }

        // Move the tests to tests/java, tests/res, etc...
        instrumentTest.setRoot('tests')

        // Move the build types to build-types/<type>
        // For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...
        // This moves them out of them default location under src/<type>/... which would
        // conflict with src/ being used by the main source set.
        // Adding new build types or product flavors should be accompanied
        // by a similar customization.
        debug.setRoot('build-types/debug')
        release.setRoot('build-types/release')
    }
}

我必须在某处添加存储库吗?

【问题讨论】:

标签: android github dependencies gradle android-studio


【解决方案1】:

当您将此行放入您的项目build.gradle 中的dependencies 部分时,它将起作用:

compile 'com.github.chrisbanes.actionbarpulltorefresh:extra-abc:+'

另外,添加:

repositories {
    mavenCentral()
}

所以:

repositories {
    mavenCentral()
}

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
    compile 'com.android.support:support-v4:18.0.+'
    compile 'com.android.support:appcompat-v7:18.0.+'
    compile 'com.github.chrisbanes.actionbarpulltorefresh:extra-abc:+'
}

Gradle 会自动为你下载所需的资源。

【讨论】:

  • 也不要将它放在顶级 build.gradle 文件中——repositoriesdependencies 块告诉 Gradle 在哪里可以找到构建系统本身的 Android-Gradle 插件.把它放在你的应用模块目录下的 build.gradle 文件中。
  • @ScottBarta 当 github 项目不发布 maven 工件时我可以这样做吗?例如,这样做可以替代手动将其配置为库项目吗?
  • @dheeraj 不,这是不可能的。
  • 当 git 部分甚至不共享它的 gradle 链接时,你怎么知道 gradle 链接
  • @ralphspoon 当项目不共享链接时,它可能没有。也可以在search.maven.org搜索项目。
【解决方案2】:

使用https://jitpack.io/

allprojects {
    repositories { 
        jcenter()
        maven { url "https://jitpack.io" }
    }
}
dependencies {
    compile 'com.github.User:Repo:Tag'
}

【讨论】:

猜你喜欢
  • 2014-07-31
  • 2017-10-18
  • 2014-06-17
  • 2014-10-06
  • 2014-09-15
  • 2016-11-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多