无法解析com.android.support:appcompat-v7:28.0.0

时间:2018-12-20 07:29:20

标签: android android-studio android-gradle

关于此问题有很多不同的问题,但是有关使用v7.28.0v7.28.+v7.28.0.0-rc02的问题,但是当我同步项目时会出现此错误:

  

无法解决':app @ debug / compileClasspath'的依赖关系:可以   无法解析com.android.support:appcompat-v7:28.0.0。

我已经检查了Support library setup,并按照说明进行操作,但没有帮助。

这是我的模块应用

buildscript {
    repositories {
        maven { url 'https://plugins.gradle.org/m2/'}
    }
    dependencies {
        classpath 'gradle.plugin.com.onesignal:onesignal-gradle-plugin:0.12.1'
    }
}
apply plugin: 'com.onesignal.androidsdk.onesignal-gradle-plugin'

repositories {
    maven { url 'https://maven.google.com' }
}

apply plugin: 'com.android.application'

android {
    compileSdkVersion 28
    buildToolsVersion '28.0.3'

    defaultConfig {
        applicationId "com.mobaleghan.nasimnoor"
        manifestPlaceholders = [
                onesignal_app_id: 'b1ced87b-48d1-4857-a68b-9c287aa4003f',
                // Project number pulled from dashboard, local value is ignored.
                onesignal_google_project_number: 'REMOTE'
        ]
        minSdkVersion 16
        targetSdkVersion 28
        versionCode 8
        versionName "1.6.3"
        vectorDrawables.useSupportLibrary = true
    }

    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'),
                    'proguard-rules.pro'
        }
        debug {
            debuggable true
        }
    }

    lintOptions {
        abortOnError false
    }
}

dependencies {
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.android.support:design:28.0.0'
    implementation 'com.android.support:preference-v7:28.0.0'
    implementation 'com.android.support:recyclerview-v7:28.0.0'
    implementation 'com.android.support:support-annotations:27.1.1'
    implementation 'com.android.support:support-v4:28.0.0'
    implementation 'com.android.support:cardview-v7:28.0.0'
    implementation 'com.google.android.apps.dashclock:dashclock-api:2.0.0'
    implementation 'com.android.support.constraint:constraint-layout:1.1.0'
    implementation "com.android.support:support-core-utils:28.0.0"
    implementation 'com.onesignal:OneSignal:3.10.3'
}

和项目gradle:

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

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

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

我已经在设置中进行了测试,因此android studio的互联网连接很好,而且我不知道要看什么。

我什至在AS 3.2.1中创建了一个新项目,但出现相同的错误。 我不知道为什么this happens every time I update AS

5 个答案:

答案 0 :(得分:4)

Android项目有2个gradle文件:一个存储在项目范围内,一个存储在应用程序范围内。 (请注意,一个项目可以在内部包含许多应用程序,但是通常只有一个)。因此,您只需要在这2个gradle文件中交换定义的存储库URL。

第1步:删除build.gradle(应用程序)中的这些代码行

repositories {
    maven { url 'https://maven.google.com' }
}

第2步:将其添加到您的build.gradle(项目)

    allprojects {
        repositories {
            google()
            jcenter()
            maven { url 'https://maven.google.com' }
            maven { url 'https://jitpack.io' }
            mavenCentral()
        }
    }

您必须意识到28.0.0android.support的最后一个稳定版本。因此,您可能想降级版本或将所有内容迁移到androidX

  

28.0.0的稳定版本将成为打包为android.support的最终功能版本。所有后续功能版本将仅以androidx打包的工件形式提供。

看看这个link,欢迎来到androidX的新时代。

答案 1 :(得分:3)

我敢肯定,其他答案都是好的并且可行。但是我的问题是通过将代理设置为Freedom of Developers来解决的。

enter image description here

此解决方案适用于像我这样的波斯人,他们受到Google对伊朗人的严格限制。

现在我的应用程序gradle看起来像这样:

buildscript {
    repositories {
        maven { url 'https://plugins.gradle.org/m2/'}
    }
    dependencies {
        classpath 'gradle.plugin.com.onesignal:onesignal-gradle-plugin:0.12.1'
    }
}
apply plugin: 'com.onesignal.androidsdk.onesignal-gradle-plugin'

repositories {
    maven { url 'https://maven.google.com' }
}

apply plugin: 'com.android.application'

android {
    compileSdkVersion 28
    buildToolsVersion '28.0.3'

    defaultConfig {
        applicationId "com.mobaleghan.nasimnoor"
        manifestPlaceholders = [
                onesignal_app_id: 'b1ced87b-48d1-4857-a68b-9c287aa4003f',
                // Project number pulled from dashboard, local value is ignored.
                onesignal_google_project_number: 'REMOTE'
        ]
        minSdkVersion 16
        targetSdkVersion 28
        versionCode 9
        versionName "1.6.4"
        vectorDrawables.useSupportLibrary = true
    }

    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'),
                    'proguard-rules.pro'
        }
        debug {
            debuggable true
        }
    }

    lintOptions {
        abortOnError false
    }
}

dependencies {
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.android.support:design:28.0.0'
    implementation 'com.android.support:preference-v7:28.0.0'
    implementation 'com.android.support:recyclerview-v7:28.0.0'
    implementation 'com.android.support:support-annotations:28.0.0'
    implementation 'com.android.support:support-v4:28.0.0'
    implementation 'com.android.support:cardview-v7:28.0.0'
    implementation 'com.google.android.apps.dashclock:dashclock-api:2.0.0'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    implementation "com.android.support:support-core-utils:28.0.0"
    implementation 'com.onesignal:OneSignal:3.10.3'
}

这些存储库基于OneSignal documentations

顶级构建:

buildscript {
    repositories {
        google()
        jcenter()
        maven {
            url 'https://maven.google.com/'
            name 'Google'
        }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.2.1'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        google()
        jcenter()
        maven {
            url 'https://maven.google.com/'
            name 'Google'
        }
    }
}

一切正常。

答案 2 :(得分:0)

尝试以下操作:

1)取消选中构建工具中的离线工作: 文件->其他设置->默认设置->构建,执行,部署->构建工具-> Gradle->取消选中离线工作选项。

2)如果上述方法不起作用,请转到项目的构建gradle,然后在存储库中添加以下内容:

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

答案 3 :(得分:0)

将这部分内容从模块的build.gradle合并到根项目的build.gradle

buildscript {
    repositories {
        maven { url 'https://plugins.gradle.org/m2/'}
    }
    dependencies {
        classpath 'gradle.plugin.com.onesignal:onesignal-gradle-plugin:0.12.1'
    }
}

repositories {
    maven { url 'https://maven.google.com' }
}

仅将这些行保留在模块的build.gradle中:

apply plugin: 'com.android.application'
apply plugin: 'com.onesignal.androidsdk.onesignal-gradle-plugin'

android {
   ...
}

根项目的build.gradle应该看起来像这样:

buildscript {
    repositories {
        google()
        jcenter()
        maven { url 'https://plugins.gradle.org/m2/' }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.2.1'
        classpath 'gradle.plugin.com.onesignal:onesignal-gradle-plugin:0.12.1'
    }
}

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

答案 4 :(得分:0)

您仍然可以使用28.0.0版,但是现在该迁移到Android X了!

根据Support Library Documentation

  

注意:随着Android 9.0(API级别28)的发布,新的   支持库版本AndroidX,它是   喷气背包AndroidX库包含现有的支持库   并且还包括最新的Jetpack组件。

     

您可以继续使用支持库。历史文物   (那些版本为27或更早版本,并打包为android.support。*)   仍可在Google Maven上使用。但是,所有新图书馆   开发将在AndroidX库中进行。

     

我们建议在所有新项目中使用AndroidX库。您   还应该考虑将现有项目迁移到AndroidX。