为 api 26 (Android) 设置 Gradle
Posted
技术标签:
【中文标题】为 api 26 (Android) 设置 Gradle【英文标题】:Setting up Gradle for api 26 (Android) 【发布时间】:2017-11-13 23:21:45 【问题描述】:由于我已将 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'
【问题讨论】:
请参考我的回答我是如何工作的***.com/a/45706108/5268588 【参考方案1】:你添加google maven endpoint了吗?
重要提示:现在可以通过 Google 的 Maven 存储库获得支持库。您无需从 SDK 管理器下载支持存储库。有关详细信息,请参阅Support Library Setup。
将端点添加到您的 build.gradle 文件中:
allprojects
repositories
jcenter()
maven
url 'https://maven.google.com'
从 Android Gradle v3 开始可以用快捷方式google()
代替:
allprojects
repositories
jcenter()
google()
如果您在repositories
中已经有任何maven url,您可以在它们之后添加引用,即:
allprojects
repositories
jcenter()
maven
url 'https://jitpack.io'
maven
url 'https://maven.google.com'
【讨论】:
你的代码错了,jcenter()是before maven标签 谢谢!这对我有用。指定的 url 是 jitpack.io 仍然显示错误“当使用早于 android-O 修订版 2 的 compileSdkVersion 时,支持库版本必须为 26.0.0-alpha1 或更低(原为 26.0.0-beta2)”。但是我可以在我的手机上构建和运行该应用程序而没有问题,看来.. 有什么想法吗? @GunnarK 我已经安装了 AS 3.0,这里也发生了同样的事情。我猜版本表/xml中缺少某事......我们不会担心它 已升级到 alpha7,但布局设计器不在 alpha7 上工作(已经提交了一个错误,请参阅此处Layout Designer Not Working...。现在,我降级到最新的稳定版本,2.3.3。是google()
可以吗?我使用的是全球 gradle 发行版,我的版本是:4.1-milestone-1。那么build.gradle
文件中的com.android.tools.build:gradle:3.0.0-alpha7
行呢?【参考方案2】:
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'
【讨论】:
【参考方案3】:Appart 从将 maven 源 URL 设置为您的 gradle,我建议同时添加设计和 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'
【讨论】:
【参考方案4】:您可以将google()
添加到存储库块
allprojects
repositories
jcenter()
maven
url 'https://github.com/uPhyca/stetho-realm/raw/master/maven-repo'
maven
url "https://jitpack.io"
google()
【讨论】:
仅从Android Gradle plugin v 3.0.0-alpha1开始,在Android Studio 3中【参考方案5】:似乎由 Android Studio 3.0 Canary 4 和 Gradle 3.0.0-alpha4 解决。
【讨论】:
【参考方案6】:您必须在 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 时,我必须在 MODULE- 中添加 repositoriesmavenurl 'https://maven.google.com'级别 build.gradle。 在 Android Studio 3.0.0 的情况下,不需要在模块级 build.gradle 中添加。 project-level build.gradle 中的添加就足够了,这里的其他帖子中已经提到过,即:
//project-level build.gradle file
allprojects
repositories
jcenter()
maven
url 'https://maven.google.com/'
name 'Google'
2017 年 11 月 14 日更新: 我提出的解决方案在我发帖时是有效的。从那时起,已经有各种更新(甚至关于我所指的网站),我不知道现在是否有效。一个月我根据上面的解决方案做了我的工作,直到我升级到 Android Studio 3.0.0
【讨论】:
您看到什么错误提示您在模块级别添加附加配置? @jk7:例如,我提出了一些库的错误:无法解决:com.android.support:support-v4:26.1.0,无法解决:com.android.support .test.espresso:espresso-core:3.0.1,无法解决:com.android.support:appcompat-v7:26.1.0 等 @billst 你检查过你使用相同的版本并保持一致性吗?以上是关于为 api 26 (Android) 设置 Gradle的主要内容,如果未能解决你的问题,请参考以下文章
如何修复 Android 中的“调用需要 API 级别 26(当前最低为 25)”错误
调用需要 API 26(最小为 18):android.app.NotificationChannel
JobIntentService 不适用于 Oreo 以下的 API (API <= 26)