【问题标题】:Gradle can't find dependency (Android support library)Gradle 找不到依赖项(Android 支持库)
【发布时间】:2013-05-21 15:19:11
【问题描述】:

我有一个问题,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 支持库?

【问题讨论】:

  • 如何通过像这样基于文件路径设置依赖关系来解决这个问题?编译文件("path_to_your_sdk/extras/android/support/v4/android-support-v4.jar",

标签: android gradle android-support-library


【解决方案1】:

您已声明 存储库依赖项,但尚未声明 存储库。因此无法解决依赖关系。 (buildscript 块中的存储库/依赖项与主构建脚本中的存储库/依赖项严格分开。)

【讨论】:

  • 具体来说,将其作为根项目添加到您的 build.gradle:repositories { mavenCentral() } 详细信息:jayway.com/2013/02/26/…
【解决方案2】:

http://pastebin.com/FmcCZwA5

这个贴是精心制作的项目,包含 AndroidAnnotations、Dagger、Jackson 和 Robolectric。

你只需要添加

repositories {
    mavenCentral()
}

替换

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

with(上面链接代码的第 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

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

    • 我认为不需要将这个 jar 明确放入他们的 libs 文件夹中。那是在 Eclipse 中做事的旧方式。相反,如果您添加“编译”依赖项,Gradle 和 Android Studio 现在将获取最新的支持库并将其自动打包到您的项目中。
    • 你先生,才是真正的MVP
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-16
    • 2021-10-08
    • 2015-04-23
    • 2016-07-11
    • 2015-11-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多