将github库添加为Android-Studio项目的依赖项

f4b*_*f4b 52 dependencies android github gradle android-studio

我试图从https://github.com/chrisbanes/ActionBar-PullToRefresh/wiki/QuickStart-ABC实现ActionBar-PullToRefresh .我刚刚从Eclipse切换到Android-Studio,所以我对AS和Gradle都是全新的.

chrisbanes在网站上写道:

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

dependencies {  
    mavenCentral()
    compile 'com.github.chrisbanes.actionbarpulltorefresh:extra-abc:+'
}
Run Code Online (Sandbox Code Playgroud)

这是否意味着我不必下载库并且Gradle负责它以便我总是拥有最新版本?我只是不知道在哪里放上面的那一行.我在我的root中有两个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.+'
    }
}
Run Code Online (Sandbox Code Playgroud)

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

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')
    }
}
Run Code Online (Sandbox Code Playgroud)

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

nha*_*man 47

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

compile 'com.github.chrisbanes.actionbarpulltorefresh:extra-abc:+'
Run Code Online (Sandbox Code Playgroud)

另外,添加:

repositories {
    mavenCentral()
}
Run Code Online (Sandbox Code Playgroud)

所以:

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:+'
}
Run Code Online (Sandbox Code Playgroud)

Gradle将自动为您下载所需的资源.

  • 也不要把它放在顶级的build.gradle文件中 - "repositories"和"dependencies"块告诉Gradle在哪里可以找到构建系统本身的Android-Gradle插件.将它放在应用程序模块目录中的build.gradle文件中. (4认同)
  • @dheeraj不,那是不可能的. (4认同)

dev*_*ant 29

使用https://jitpack.io/

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