Gradle找不到依赖项(Android支持库)

16

我有一个问题,Gradle找不到我的依赖项(Android支持库)。

我的build.gradle文件看起来像这样:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.4'
    }
}
apply plugin: 'android'

dependencies {
    compile files('libs/FlurryAgent.jar')
    compile group: 'com.google.android', name: 'support-v4', version: 'r7'
    compile files('libs/YouTubeAndroidPlayerApi.jar')
}

android {
    compileSdkVersion 17
    buildToolsVersion "17"

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

        instrumentTest.setRoot('tests')
    }
}

当我进行构建(在命令行上,没有IDE)时,我会收到以下消息:

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring root project 'AndroidCalculator'.
> Failed to notify project evaluation listener.
   > Could not resolve all dependencies for configuration ':compile'.
      > Could not find com.google.android:support-v4:r7.
        Required by:
            :AndroidCalculator:unspecified

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

为什么我不能像这样添加Android支持库?


我们可以通过根据文件路径设置依赖项来解决这个问题,例如: compile files("path_to_your_sdk/extras/android/support/v4/android-support-v4.jar", - kingori
3个回答

16

您已经声明了一个仓库依赖项,但没有声明一个仓库。因此,无法解析该依赖项。(在buildscript块中的存储库/依赖项与主构建脚本中的存储库/依赖项是严格分离的。)


2
具体来说,将以下内容添加为您的build.gradle根项:repositories { mavenCentral() }详情请参见:http://www.jayway.com/2013/02/26/using-gradle-for-building-android-applications/ - J c

8

http://pastebin.com/FmcCZwA5

这份代码是使用AndroidAnnotations、Dagger、Jackson和Robolectric进行的精心设计项目。
你只需要添加
repositories {
    mavenCentral()
}

替换

 compile group: 'com.google.android', name: 'support-v4', version: 'r7'

在上面链接的代码的第44行中

 compile 'com.android.support:support-v4:18.0.+'
注意事项: 最后一位只适用于Android Studio 0.2+,如果您进行了全新安装。自从0.2版本起,Studio随附其内部m2存储库以提供支持和Google API库,因此如果您从旧版本升级,则SDK中没有它。 同时确保在根文件夹中存在local.properties文件,并且sdk.dir指向SDK。

2

您需要在dependencies标签中添加额外的dependency。如果您的libs文件夹中有android-support-v4.jar库,请尝试添加下面列出的代码:

dependencies {
    compile files('libs/android-support-v4.jar')
}

2
我认为不需要明确将这个 jar 放入 libs 文件夹中。这是在 Eclipse 中的旧做法。相反,如果您添加“编译”依赖项,则 Gradle 和 Android Studio 现在会自动获取最新的支持库并将其打包到您的项目中。 - IgorGanapolsky
你,先生,是真正的MVP。 - Herman Junge

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接