android - Android Studio Gradle生成失败请求一个不存在的sdk版本

24小时前项目可以完全构建,没有错误,在没有更改代码的情况下,当我恢复工作时,它不能再构建,签出旧的提交会产生相同的错误。

以下是我得到的错误代码:


Information:Gradle tasks [assemble]


Error:(9, 5) error: resource android:attr/dialogCornerRadius not found.


/home/liam/.gradle/caches/transforms-1/files-1.1/appcompat-v7-28.0.0-alpha1.aar/536e4dd78846259cf8bef0fd6a3ea0e6/res/values/values.xml



我认为这是因为Android P被发布,Android Studio会自动升级,这可以解释为什么旧的提交会得到同样的错误,

通过在gradle构建文件中更改SDK版本,搜索这些错误代码将导致类似的问题得到解决,

单击前面提到的错误代码,将打开一个名为v28/values-v28.xml的文件。


<?xml version="1.0" encoding="utf-8"?>


<resources>


 <style name="Base.Theme.AppCompat" parent="Base.V28.Theme.AppCompat"/>


 <style name="Base.Theme.AppCompat.Light" parent="Base.V28.Theme.AppCompat.Light"/>


 <style name="Base.V28.Theme.AppCompat" parent="Base.V26.Theme.AppCompat">


 <!-- We can use the platform styles on API 28+ -->


 <item name="dialogCornerRadius">?android:attr/dialogCornerRadius</item>


 </style>


 <style name="Base.V28.Theme.AppCompat.Light" parent="Base.V26.Theme.AppCompat.Light">


 <!-- We can use the platform styles on API 28+ -->


 <item name="dialogCornerRadius">?android:attr/dialogCornerRadius</item>


 </style>


</resources>



以下是gradle文件:


apply plugin: 'com.android.application'



android {


 compileSdkVersion 26


 defaultConfig {


 applicationId"com.timelord.timelord.timelord"


 minSdkVersion 24


 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'


 }


 }


}



dependencies {


 implementation fileTree(dir: 'libs', include: ['*.jar'])


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


 implementation 'com.android.support:design:+'


 implementation 'com.android.support.constraint:constraint-layout:1.0.2'


 testImplementation 'junit:junit:4.12'


 androidTestImplementation 'com.android.support.test:runner:1.0.1'


 androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'


 implementation files('libs/joda-time-2.9.9.jar')


}




// Top-level build file where you can add configuration options common to all sub-projects/modules.



buildscript {



 repositories {


 google()


 jcenter()


 }


 dependencies {


 classpath 'com.android.tools.build:gradle:3.0.1'



 // NOTE: Do not place your application dependencies here; they belong


 // in the individual module build.gradle files


 }


}



allprojects {


 repositories {


 google()


 jcenter()


 }


}



task clean(type: Delete) {


 delete rootProject.buildDir


}



时间:

您的build.gradle中包含了design库版本,这意味着它将下载最新版本。请把它设置为26.1.0,应该可以工作。

确保在应用程序的build.gradle中,你拥有这些:


dependencies {


 compile 'com.android.support:support-v13:27.+'


 compile 'com.android.support:design:27.+'


}



最后,我更改了设计库版本,可以工作了!

...