Android Studio/Gradle的Maven依赖项

Gui*_*ume 46 android gradle android-studio

我正在使用与Android Studio捆绑在一起的Gradle构建系统.到目前为止,我能够使用存储在我的项目结构中的依赖项构建多项目设置.我现在想使用maven依赖,但无济于事.我写了一个非常简单的build.gradle文件总是失败:

    buildscript {
        repositories {
            maven { url 'http://repo1.maven.org/maven2' }
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:0.4'
        }
    }
    apply plugin: 'android'

    dependencies {
        compile 'com.google.android:support-v4:r7'
    }

    android {
        compileSdkVersion 17
        buildToolsVersion "17.0.0"

        defaultConfig {
            minSdkVersion 7
            targetSdkVersion 16
        }
    }
Run Code Online (Sandbox Code Playgroud)

以下消息:

    * What went wrong:
        A problem occurred configuring project ':absabs'.
        > Failed to notify project evaluation listener.
           > Could not resolve all dependencies for configuration ':absabs:compile'.
              > Could not find com.google.android:support-v4:r7.
                Required by:
                    absabs:absabs:unspecified
....
Caused by: org.gradle.api.internal.artifacts.ivyservice.ModuleVersionNotFoundException: Could not find com.google.android:support-v4:r7.
Run Code Online (Sandbox Code Playgroud)

它发生在我迄今为止尝试的任何工件上.什么是错的?

谢谢

Pet*_*ser 70

buildscript部分中的"存储库"块仅适用于构建环境.您还需要指定在构建项目时解析依赖项时要使用的存储库,因此您需要在build.gradle文件中添加以下内容:

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

您的完整文件看起来像这样:

buildscript {
    repositories {
        maven { url 'http://repo1.maven.org/maven2' }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.4'
    }
}
apply plugin: 'android'

repositories {
    mavenCentral()
}

dependencies {
    compile 'com.google.android:support-v4:r7'
}

android {
    compileSdkVersion 17
    buildToolsVersion "17.0.0"

    defaultConfig {
        minSdkVersion 7
        targetSdkVersion 16
    }
}
Run Code Online (Sandbox Code Playgroud)

请注意"存储库"的两个实例.您可以在gradle文档中详细了解这实际意味着什么.

  • 伙计们,我有类似的问题.这里的关键部分是双重存储库声明一个内部的buildscript另一个在它之外. (2认同)

use*_*123 12

似乎当前的Android Studio版本不会立即获取新的依赖项.尝试重新启动IDE.

编辑:Android Studio> = 0.1.4v不需要此功能.它已经建立起来Sync Project with Gradle file.您可以Tools > Android > Sync Project with Gradle file在工具栏中找到它或只是按钮.


log*_*000 7

http://tools.android.com/tech-docs/new-build-system/user-guide

注意:这仅影响运行构建的代码,而不影响项目.项目本身需要声明自己的存储库和依赖项.这将在稍后介绍.

所以你必须申报

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

在您的项目范围内再次.