Gradle构建无法在Android Studio中查找Google Play服务

时间:2013-11-25 16:46:00

标签: android gradle android-studio

我正在尝试在Android Studio 0.3.6中运行我的项目,但我总是收到此错误:

Gradle: A problem occurred configuring root project 'myapp_android'.
> Failed to notify project evaluation listener.
> Could not resolve all dependencies for configuration ':_DebugCompile'.
  > Could not resolve com.google.android.gms:play-services:3.1.36.
    Required by:
        :myapp_android:unspecified
     > Could not GET 'http://maven.hq.couchbase.com/nexus/content/repositories/releases/com/google/android/gms/play-services/3.1.36/play-services-3.1.36.pom'. Received status code 503 from server: Service Temporarily Unavailable

这是我完整的build.gradle文件:

home = System.getenv("ANDROID_HOME")

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

repositories {
    mavenCentral()
    maven {
        url "http://maven.hq.couchbase.com/nexus/content/repositories/releases/"
    }

    maven {
        url "http://files.couchbase.com/maven2/"
    }
}

dependencies {
    compile 'com.android.support:support-v4:18.0.+'
    compile 'com.android.support:appcompat-v7:18.0.+'
    compile 'com.google.android.gms:play-services:3.1.36'
    compile 'com.couchbase.cblite:CBLite:1.0.0-beta'
    compile 'com.couchbase.cblite:CBLiteEktorp:1.0.0-beta'
    compile 'com.couchbase.cblite:CBLiteJavascript:1.0.0-beta'
    compile fileTree(dir: 'libs', include: '*.jar')

    instrumentTestCompile 'com.jayway.android.robotium:robotium-solo:4.3'
}

android {
    compileSdkVersion 18
    buildToolsVersion "18.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']
        }

        instrumentTest.setRoot('tests')

        debug.setRoot('build-types/debug')
        release.setRoot('build-types/release')
    }
}

tasks.withType(Compile) {
    options.encoding = 'UTF-8'
}

最后,我的SDK Manager:

Android SDK Manager

我尝试了许多版本的Android Studio(0.2.8,0.2.9,0.2.13,0.3.2,0.3.6),它总是一样的。我尝试更改Play服务版本,我尝试更改依赖项的顺序,没有做任何事情。

我的设置有什么不正确的地方吗?我找到了答案,几乎我发现的所有内容(build.gradle结构,SDK缺失项目)已经很好......

3 个答案:

答案 0 :(得分:7)

我终于找到了问题所在。 @gnuf指出我正确的方向。但问题是Android Studio,在Project Structure中平台设置| Android SDK,显示错误的SDK。它显示它使用的SDK是C:/Program Files (x86)/Android/android-studio/sdk,但事实上,我发现它尝试使用C:\Users\my_username\AppData\Local\Android\android-studio\sdk中的另一个SDK进行构建。

毋庸置疑,它没有用。此SDK中没有安装任何内容。因此,我将C:/Program Files (x86)/Android/android-studio/sdk的内容复制到了C:\Users\my_username\AppData\Local\Android\android-studio\sdk,并将的内容复制了!我在三周内的第一次建造。

所以我认为这是Android Studio的一个错误。如果有人遇到此问题,请确保您的计算机上只有一个SDK。如果您有多个,请确保它们都具有所需的依赖项。如果可以,只需将最新的内容复制到其他内容。

答案 1 :(得分:2)

可能是您安装SDK组件的位置与Android Studio正在使用的位置不同。

您是否可以验证本地Maven存储库(由Google存储库和Android支持存储库安装)是否位于您在Android Studio项目中使用的Android SDK下?

在Android Studio中,转到“项目结构”|平台设置| Android SDK。 (在我的机器上,Android SDK位置的路径为/opt/boxen/homebrew/Cellar/android-sdk/22.2.1)在该目录中,确保子目录extras/google/m2repository/com/google/android/gms/play-services/存在。

答案 2 :(得分:-1)

它会在您的SDK附加内容中查找Google依赖项,例如Google Play服务,而不是通过网络在Maven存储库中查找。在SDK管理器中安装“Google Repository”,你应该不错。