无法在Android Studio中同步gradle项目

时间:2016-08-23 21:15:22

标签: android android-studio gradle google-play-services

我无法从Google Play Services同步基本样本项目。我尝试更新minsdktargetsdkcompilesdk版本,更新了项目结构和风格,但项目仍然不会sync

这是我的错误:

Error:Could not find method compile() for arguments [com.android.support:support-v4:24.2.0] on DefaultExternalModuleDependency{group='com.android.support', name='appcompat-v7', version='24.2.0', configuration='default'} of type org.gradle.api.internal.artifacts.dependencies.DefaultExternalModuleDependency.

Please install the Android Support Repository from the Android SDK Manager.
<a href="openAndroidSdkManager">Open Android SDK Manager</a>

但是我安装了最新的Android Support Repository (rev 36),所以我认为问题是别的。

如果您想尝试克隆项目:https://github.com/playgameservices/android-basic-samples.git

gradle档案:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 24
    buildToolsVersion '24.0.1'
    defaultConfig {

        /*
          REPLACE THIS VALUE WITH YOUR APPLICATION ID
        */
        applicationId "com.google.example.games.replace.me"

        minSdkVersion 19
        targetSdkVersion 24
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
    productFlavors {
    }
}

dependencies {
    compile "com.android.support:appcompat-v7:${appcompat_library_version}" compile "com.android.support:support-v4:${support_library_version}" compile project(':libraries:BaseGameUtils')
}

buildscript {
    repositories {
        jcenter()
    }
}

3 个答案:

答案 0 :(得分:8)

问题实际上是一个相当小的问题:在每个依赖项之后你没有终结线。

dependencies {
compile "com.android.support:appcompat-v7:${appcompat_library_version}" compile "com.android.support:support-v4:${support_library_version}" compile project(':libraries:BaseGameUtils')
}

应该是

dependencies {
    compile "com.android.support:appcompat-v7:${appcompat_library_version}"
    compile "com.android.support:support-v4:${support_library_version}"
    compile project(':libraries:BaseGameUtils')
}

当依赖项使用变量而不是直接引用版本号时,Android Studio上的插件以任何方式编辑或修改gradle文件时,此错误非常常见。例如,我注意到在使用Method Counts插件甚至Firebase插件时会发生这种情况。

答案 1 :(得分:1)

最后得到了解决方法:

我从基本样本gradle文件中删除了这一部分

ext {
    android_compile_version = 24
    android_version = '24.0.1'
    android_min_sdk_version = 19

    appcompat_library_version = '24.2.0'
    support_library_version = '24.2.0'
    gms_library_version = '9.4.0'
}

并将其从其他gradle文件中删除:

dependencies {
    compile "com.android.support:appcompat-v7:${appcompat_library_version}" 
    compile "com.android.support:support-v4:${support_library_version}"         
    compile project(':libraries:BaseGameUtils')
}

并用实际值替换它们。

dependencies {
    compile "com.android.support:appcompat-v7:24.2.0" 
    compile "com.android.support:support-v4:24.2.0"         
    compile project(':libraries:BaseGameUtils')
}

不知怎的,这让一切变得不同

修改

问题实际上是在每个依赖之后没有终点线!不要在同一行写下所有依赖项

gradle档案中的问题:

dependencies {
   compile "com.android.support:appcompat-v7:${appcompat_library_version}" compile "com.android.support:support-v4:${support_library_version}" compile project(':libraries:BaseGameUtils')
}

解决方案:

dependencies {
    compile "com.android.support:appcompat-v7:24.2.0" 
    compile "com.android.support:support-v4:24.2.0"         
    compile project(':libraries:BaseGameUtils')
}

答案 2 :(得分:0)

确保项目build.gradle中包含以下代码:

allprojects {
    repositories {
        jcenter()
        maven {
            url "https://maven.google.com"
        }
    }
}

我的项目缺少Google的Maven Repo网址。添加它和gradle同步魅力。

希望能节省一些人的时间。