无法解析:com.android.support:appcompat-v7:27.+ (依赖错误)

63
我在使用Android Studio时遇到了这个问题。
Error:Failed to resolve: com.android.support:appcompat-v7:27.+
<a href="install.m2.repo">Install Repository and sync project</a><br><a href="open.dependency.in.project.structure">Show in Project Structure 
dialog</a>

我的Android Studio充满了错误,无法识别库。整个屏幕看起来像这样。

image

这是我的Gradle代码:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 27
    buildToolsVersion "27.0.1"

    defaultConfig {
        applicationId "com.example.hp.temp"
        minSdkVersion 21
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:27.+'
}

你尝试过安装仓库并同步项目吗? - capt.swag
如果您居住在像伊朗这样的某些国家,不幸的是谷歌不支持您的Gradle,因此您必须使用VPN获取Gradle依赖项。 - Hosein Aqajani
实际上,这个答案不应被标记为重复,因为解决方案的技术要求与源答案不同。 - angryITguy
在项目 build.gradle 文件中,在 jcenter() 后添加以下代码:maven { url "https://maven.google.com" } - androidStud
2个回答

120

找到根目录下的build.gradle文件,在allprojects标签内添加谷歌 Maven 仓库

repositories {
        mavenLocal()
        mavenCentral()
        maven {                                  // <-- Add this
            url 'https://maven.google.com/' 
            name 'Google'
        }
    } 

最好使用特定版本而不是变量版本。

compile 'com.android.support:appcompat-v7:27.0.0'
如果您正在使用Gradle的Android插件3.0.0或更高版本。
repositories {
      mavenLocal()
      mavenCentral()
      google()        //---> Add this
} 

并且可以通过以下方式进行依赖注入:

implementation 'com.android.support:appcompat-v7:27.0.0'

implementation 'com.android.support:appcompat-v7:27.0.0' How do I decide what version to specify? Still gives dex error. v7:27.0.1 or v7:27.0.2 - Rahul Bali
2
我总是喜欢使用最新版本,当前最新版本是 27.0.2,如果您遇到 dex 错误,请启用 multidex。 - Abhishek Aryan
错误:执行任务':app:transformDexArchiveWithExternalLibsDexMergerForDebug'失败。
com.android.builder.dexing.DexArchiveMergerException:无法合并dex
持续出现此错误。我已经进行了许多修复操作,但没有帮助。当我设置CompileSdkVersion 26时,它可以编译,但是应用在手机上崩溃了。 我还启用了multidex支持,问题仍然存在。
- Rahul Bali
@Aryan 我发现在项目gradle的"allprojects"中包含"google()"也会完成构建,除了上面的答案。 - angryITguy
@giulio的仓库链接只能添加在根目录build.gradle文件中的allprojectsbuildscript标签的repositories中。 - Abhishek Aryan
显示剩余2条评论

57

如果您使用Android Studio 3.0或更高版本,请确保您的项目build.gradle文件包含类似以下内容-

buildscript {                 
    repositories {
        google()
        jcenter()
    }
    dependencies {            
        classpath 'com.android.tools.build:gradle:3.0.1'

    }
}

allprojects {
    repositories {
        google()
        jcenter()
    }
}

注意:位置真的很重要,在jcenter()之前添加google()

Android Studio 3.0以下版本,并从支持库26.+开始,你的项目build.gradle文件必须像这样-

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

查看以下链接以获取更多详细信息 -

1- 构建Android应用程序

2- 添加构建依赖项

3- 配置构建


3
谷歌必须在jcenter之前设置,就像您所做的那样,否则错误将继续出现。 - Ben-J
正确的 @Ben-J 位置真的很重要 :) - D_Alpha
将Google放在JCenter之前解决了我的问题! - Matej Vukosav

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