错误:(9,5)错误:找不到资源android:attr / dialogCornerRadius

时间:2018-03-14 14:42:00

标签: android attr

所以我安装了android studio 3.0.1,并且一打开gradle并显示以下错误。我尝试添加设计和支持等依赖项,但是徒劳无功。有人能帮助我吗? 先感谢您。 enter image description here

它显示找不到某些属性,如dialogCornerRadius和fontVariation设置。

18 个答案:

答案 0 :(得分:122)

由于compileSdkVersioncompileSdkVersion 27 implementation 'com.android.support:appcompat-v7:26.1.0' implementation 'com.android.support:design:26.1.0' 不匹配而发生此错误 图书馆版。

例如:

implementation 'com.android.support:appcompat-v7:26.+'

并且还避免对库使用+符号,如下所示:

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

使用像这样的精确库版本

displayRecords();
function displayRecords()
{
  $.ajax({
    url: 'process/getRecords.php',
    type: 'POST',
    data: '',
    dataType: 'html',
    success: function(data, textStatus, jqXHR)
    {
      var jsonObject = $.parseJSON(data); 
      var table = $('#resultsTable').DataTable({    
      {
        "data": jsonObject,
        "columns": [
          {"data": "JOB_REFERENCE"},
          {"data": "VOYAGE_REFERENCE"},
          // few more columns
        ],
        "iDisplayLength": 25,
        "scrollY": 500,
        "scrollX": true,
        "bDestroy": true,
        "paging": true,
        "stateSave": true
      }
    },
    error: function(jqHHR, textStatus, errorThrown)
    {
      console.log('fail: '+ errorThrown);
    }
  });

   // button click to export results
   var tableresults = $('#resultsTable').dataTable();

   $("#btnExport").on('click', function(e) 
   {
     e.preventDefault();
     window.open('data:application/vnd.ms-excel,' +
       encodeURIComponent(table[0].outerHTML));
   });
}

在库中使用+符号使得构建过程难以收集所需的确切版本,从而使系统不稳定,因此不应该这样做。

答案 1 :(得分:34)

如果您迁移到AndroidX并出现此错误,则需要将编译SDK设置为Android 9.0(API级别28)或更高版本

答案 2 :(得分:14)

检查您的依赖项是否在版本中使用+。某些依赖项可能正在使用com.android.support:appcompat-v7:+。当新版本发布并且可能破坏功能时,这会导致问题。

解决方法是使用com.android.support:appcompat-v7:{compileSdkVersion}.+或完全不使用+并使用完整版(例如com.android.support:appcompat-v7:26.1.0)。

如果你在build.gradle文件中看不到这一行,请在android studio终端中运行,以概述每个依赖项使用的内容

gradlew -q dependencies app:dependencies --configuration debugAndroidTestCompileClasspath(包括androidtest依赖项)

OR

gradlew -q dependencies app:dependencies --configuration debugCompileClasspath(调试的常规依赖项)

导致看起来接近这个

的东西
------------------------------------------------------------
Project :app
------------------------------------------------------------

debugCompileClasspath - Resolved configuration for compilation for variant: debug
...
+--- com.android.support:appcompat-v7:26.1.0
|    +--- com.android.support:support-annotations:26.1.0
|    +--- com.android.support:support-v4:26.1.0 (*)
|    +--- com.android.support:support-vector-drawable:26.1.0
|    |    +--- com.android.support:support-annotations:26.1.0
|    |    \--- com.android.support:support-compat:26.1.0 (*)
|    \--- com.android.support:animated-vector-drawable:26.1.0
|         +--- com.android.support:support-vector-drawable:26.1.0 (*)
|         \--- com.android.support:support-core-ui:26.1.0 (*)
+--- com.android.support:design:26.1.0
|    +--- com.android.support:support-v4:26.1.0 (*)
|    +--- com.android.support:appcompat-v7:26.1.0 (*)
|    +--- com.android.support:recyclerview-v7:26.1.0
|    |    +--- com.android.support:support-annotations:26.1.0
|    |    +--- com.android.support:support-compat:26.1.0 (*)
|    |    \--- com.android.support:support-core-ui:26.1.0 (*)
|    \--- com.android.support:transition:26.1.0
|         +--- com.android.support:support-annotations:26.1.0
|         \--- com.android.support:support-v4:26.1.0 (*)
+--- com.android.support.constraint:constraint-layout:1.0.2
|    \--- com.android.support.constraint:constraint-layout-solver:1.0.2

(*) - dependencies omitted (listed previously)

如果您无法控制更改版本,请尝试强制使用特定版本。

configurations.all {
    resolutionStrategy {
        force "com.android.support:appcompat-v7:26.1.0"
        force "com.android.support:support-v4:26.1.0"
    }
}

根据设置为28.0.0

的内容,力依赖性可能需要不同

答案 3 :(得分:13)

我有完全相同的问题。以下主题帮助我解决了这个问题。只需将Compile SDK版本设置为Android P.

即可

https://stackoverflow.com/a/49172361/1542720

答案 4 :(得分:9)

在使用具有多个模块的应用程序时遇到相同的问题,请检查以确保在将模块中的compileSdkVersiontargetSdkVersion的值增加到28+时也要对其他模块执行同样的操作。 / p>

一个模块在compileSdkVersion 29targetSdkVersion 29上运行,而应用程序的第二个模块在compileSdkVersion 27targetSdkVersion 27上运行。

更改第二个模块以进行编译并以SDK版本29为目标解决了我的问题。希望这对某人有帮助。

答案 5 :(得分:5)

也许为时已晚,但我找到了解决方法:

您必须在build.gradle->中编辑compileSdkVersion至最新(现在是28)。像这样:

android {
compileSdkVersion 28
defaultConfig {
    applicationId "NAME_OF_YOUR_PROJECT_DIRECTORY"
    minSdkVersion 21
    targetSdkVersion 28
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}

或者您可以更改实现的版本:

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    api 'com.android.support:design:27.+'
    implementation 'com.android.support:appcompat-v7:27.1.1'
    implementation 'com.android.support.constraint:constraint-layout:1.1.2'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}

答案 6 :(得分:5)

这是因为compileSdkVersion,buildToolsVersion和Dependecies实现不匹配 您必须这样做,我才拥有28个图书馆

const { ResourceManagementClient } = require('azure-arm-resource');
const resourceClient = new ResourceManagementClient(credentials, subscriptionId);
resourceClient.resourceGroups.createOrUpdate(groupName, groupParameters);

如果我们在少于28处使用“任意”,则应发生此错误,因此请尝试全部使用匹配库。

答案 7 :(得分:5)

我在添加mapbox导航API时遇到了相同的问题,并通过以下方法解决了该问题:file> project Structure,然后将compile sdk版本和build工具版本设置为最新版本。 这是屏幕截图: settings Screenshot

希望有帮助。

答案 8 :(得分:2)

就我而言,我尝试尝试File> Invalidate Cache/Restart,这对我有用。

答案 9 :(得分:2)

尝试将compileSdkVersion更改为:compileSdkVersion 28

答案 10 :(得分:1)

必须按如下所示应用依赖项来解决此问题:

dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
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 'com.android.support:support-v4:27.1.0'
implementation 'com.android.support:appcompat-v7:27.1.0'
implementation 'com.android.support:recyclerview-v7:27.1.0'
}

请不要使用以下版本:

  

V7:28.0.0-α1

答案 11 :(得分:1)

我遇到了同样的问题,但是我通过将compileSdkVersion的版本更改为最新版本29,并将targetSdkVersion的版本更改为最新版本29成功解决了该问题。

转到gradile.build文件并更改compilesdkversion和targetdkversion。

答案 12 :(得分:1)

找到了一个简洁的插件来解决此问题: cordova-android-support-gradle-release

cordova插件添加cordova-android-support-gradle-release --variable ANDROID_SUPPORT_VERSION = 27. + --save

答案 13 :(得分:0)

 buildscript {

    project.ext {
        supportLibVersion = '27.1.1'
        compileVersion = 28
        minSupportedVersion = 22
    }
}

并设置依赖项:

implementation "com.android.support:appcompat-v7:$project.supportLibVersion"

答案 14 :(得分:0)

就我而言,此错误是在我使用时发生的

implementation 'com.android.support:appcompat-v7:+'
implementation 'com.android.support:design:+'

图书馆与Google一起

implementation 'com.google.android.material:material-components:+'

图书馆。如果您的项目属于这种情况,我强烈建议您从项目中完全删除google material组件库。

答案 15 :(得分:0)

就我而言,在将compileSdkVersion更新为29时,我在AndroidStudio 4.1.1中遇到此错误。

如果您在build.gradle中有从属项目,那么您要做的就是在从属项目的build.gradle中也更新相同的compileSdkVersion。

步骤:

  1. 在AndroidStudio的“项目”视图中单击您的应用程序文件夹。
  2. 选择“打开模块设置”。
  3. 在“项目结构”中>>检查其中有多少个模块?
  4. 如果有多个模块,则还必须更新compileSdkVersion,buildToolsVersion和Project依赖项。

对我有用:)

答案 16 :(得分:-1)

build.gradle 项目更新它们

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

classpath 'com.google.gms:google-services:4.3.4'

并从 build.gradle 应用更新

compileSdkVersion = 30

buildToolsVersion = '29.0.3'

targetSdkVersion = 29

最后一件事从 gradle 更新 gradle-wrapper.properties

distributionUrl=https://services.gradle.org/distributions/gradle-6.1.1-all.zip

答案 17 :(得分:-1)

在文件 gradle.properties 中将 useAndroidX 和 enableJetifier 更改为 false 并在我的情况下删除 Dependecies 中的 androidx