繁体   English   中英

无法在Android Studio中同步gradle项目

[英]Failed to sync gradle project in Android Studio

我无法从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()
    }
}

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

这个

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插件时会发生这种情况。

最后得到一个解决方法:

我从基本样本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')
}

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM