为 api 26 (Android) 设置 Gradle

Setting up Gradle for api 26 (Android)

由于我已将 Nexus 5x 升级到 Android O DP3,因此我无法测试我的应用程序。我收到错误消息,因为我没有配置我的 Gradle-文件以使用新的 API-级别 (26)。

所以我更改了它和依赖项,但我的所有支持库都不断出现错误,例如

Failed to resolve: com.android.support:design:26.0.0-beta2

点击

Install repository and sync project

弹出下载正确依赖项的进度对话框,但没有消除错误。清理项目、安装存储库然后重建项目也不起作用。

appcompat-v7

在 appcompat-v7:26.0.0-beta2 上,我得到(甚至在 Gradle 同步之前)快速显示错误:

When using a compileSdkVersion older than android-O revision 2,
the support library version must be 26.0.0-alpha1 or lower (was 26.0.0-beta2)

有人可以帮助我为 Android API 26 正确配置 gradle 文件吗? 任何帮助将不胜感激。

PS:我目前正在使用 Gradle 3.0.0-alpha3,但在 Gradle 2.3.2

上出现相同的错误

我的 Gradle 文件:

apply plugin: 'com.android.application'

android {
compileSdkVersion 26
buildToolsVersion '26.0.0'

defaultConfig {
    applicationId "********"
    minSdkVersion 21
    targetSdkVersion 26
    versionCode 3
    versionName "2.0"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
}

dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:26.0.0-beta2'
compile 'com.android.support:design:26.0.0-beta2'
compile 'com.github.bumptech.glide:glide:3.7.0'
compile 'com.squareup.picasso:picasso:2.5.2'
compile 'com.android.support:cardview-v7:26.0.0-beta2'
compile 'com.android.support:recyclerview-v7:26.0.0-beta2'
compile 'com.redbooth:WelcomeCoordinator:1.0.1'
compile 'com.github.kittinunf.fuel:fuel-android:1.4.0'
compile 'com.pkmmte.view:circularimageview:1.1'
compile 'com.ramotion.foldingcell:folding-cell:1.1.0'
}

你添加了 google maven endpoint 了吗?

Important: The support libraries are now available through Google's Maven repository. You do not need to download the support repository from the SDK Manager. For more information, see Support Library Setup.

将端点添加到您的 build.gradle 文件:

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

可以用快捷方式 google() 代替,因为 Android Gradle v3:

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

如果repositories里面已经有任何maven url,你可以在它们后面添加引用,即:

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

似乎由 Android Studio 3.0 Canary 4 和 Gradle 3.0.0-alpha4 解决。

您可以将 google() 添加到存储库块

allprojects {
    repositories {
        jcenter()
        maven {
            url 'https://github.com/uPhyca/stetho-realm/raw/master/maven-repo'

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

android {
    compileSdkVersion 26
    buildToolsVersion "26.0.1"
    defaultConfig {
        applicationId "com.keshav.retroft2arrayinsidearrayexamplekeshav"
        minSdkVersion 15
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}
 compile 'com.android.support:appcompat-v7:26.0.1'
    compile 'com.android.support:recyclerview-v7:26.0.1'
    compile 'com.android.support:cardview-v7:26.0.1'

除了将 maven 源 url 设置为您的 gradle,我建议同时添加 design 和 appcompat 库。 目前最新版本为26.1.0

maven {
    url "https://maven.google.com"
}

...

compile 'com.android.support:appcompat-v7:26.1.0'
compile 'com.android.support:design:26.1.0'

您必须在 MODULE-LEVEL build.gradle 文件中添加:

//module-level build.gradle file
repositories {
    maven {
        url 'https://maven.google.com'

    }
}

参见:Google's Maven repository

我观察到,当我使用 Android Studio 2.3.3 时,我 必须 添加 repositories{maven{url 'https://maven.google.com'}} 模块级别 build.gradle。 在 Android Studio 3.0.0 的情况下,不需要在模块级别添加 build.gradle。在 project-level build.gradle 中添加就足够了,这在其他 post 中已被引用,即:

//project-level build.gradle file
allprojects {
 repositories {
    jcenter()
    maven {
        url 'https://maven.google.com/'
        name 'Google'
    }
  }
}

2017 年 11 月 14 日更新: 我提出的解决方案在我执行 post 时有效。从那以后,出现了各种更新(即使是关于我所指的网站),我不知道现在是否有效。在一个月的时间里,我根据上述解决方案完成了工作,直到我升级到 Android Studio 3.0.0