You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Cordova编译报错:找不到匹配的dialogCornerRadius资源

嘿,这个问题我太熟了!你执行cordova build时碰到的Error: No resource found that matches the given name (at 'dialogCornerRadius' with value '?android:attr/dialogCornerRadius')错误,确实是Android P(SDK 27)预览版发布后引发的兼容性问题,给你几个靠谱的解决办法:

解决Cordova Build时的dialogCornerRadius资源错误

方案一:重新添加指定稳定版本的Android平台

这是最直接的办法,能彻底避开预览版SDK的干扰:

  • 先查看当前项目的平台列表:
    cordova platform ls
    
  • 移除当前的Android平台:
    cordova platform remove android
    
  • 添加对应SDK 26(Android 8.0)稳定版的Android平台:
    cordova platform add android@7.0.0
    
    这个版本完全适配稳定版SDK,不会触发预览版的属性问题。

方案二:直接修改项目的gradle配置

如果不想重新添加平台,手动改配置也能搞定:

  1. 打开项目根目录下的platforms/android/build.gradle文件
  2. 找到compileSdkVersion和targetSdkVersion的配置项,把它们的值从27修改为26
  3. 同时检查dependencies区块里的com.android.support:appcompat-v7版本,确保是26.x.x的稳定版,比如:
    dependencies {
        compile 'com.android.support:appcompat-v7:26.1.0'
    }
    
  4. 保存文件后,执行清理和重新构建:
    cordova clean && cordova build android
    

方案三:禁用Android P预览版SDK

如果你是用Android Studio管理SDK的,可以通过SDK Manager取消Android P(SDK 27)预览版的下载,再清理缓存重新构建:

  • 打开Android Studio的SDK Manager,取消勾选“Android Pie Preview”相关组件
  • 回到终端执行清理命令:
    cordova clean
    
  • 最后重新构建项目:
    cordova build android
    

问题根源说明

?android:attr/dialogCornerRadius是Android P(API 27)才新增的系统属性,你的项目依赖库(比如appcompat)可能自动拉取了预览版SDK的资源,导致在基于稳定版SDK编译时找不到这个属性。只要把编译目标切回稳定的SDK版本,就能彻底解决这个问题。

内容的提问来源于stack exchange,提问作者WartSemola

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 08:23:53