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

将compileSdkVersion与targetSdkVersion从25改为23后遇资源找不到错误

解决降级compileSdkVersion/targetSdkVersion到23后的资源找不到问题

嘿,我之前也踩过这个坑,这问题根源其实很清楚——你提到的那两个TextAppearance样式是Android 7.0(API 24)才新增的系统资源,而你现在把compileSdk和targetSdk降到了23(Android 6.0),系统里根本没有这些高版本样式,自然会抛出资源找不到、链接失败的错误。

给你几个实用的解决方案,按需挑选:

  • 检查代码/布局的直接引用
    如果是你自己的布局文件或样式里直接用了android:style/TextAppearance.Material.Widget.Button.Borderless.Colored或android:style/TextAppearance.Material.Widget.Button.Colored,直接替换成API 23支持的样式就行。比如换成TextAppearance.Material.Widget.Button或者TextAppearance.Material.Widget.Button.Borderless,要是需要特定文字颜色,自己在样式里加android:textColor属性自定义就好。

  • 排查第三方依赖库
    很多时候这种问题是第三方库搞出来的——有些库默认依赖了高版本的系统样式。你可以执行gradle命令查看项目依赖树:

    ./gradlew app:dependencies
    

    定位到哪个库引入了高版本资源后,要么:

    1. 替换为兼容API 23的库版本;
    2. 如果是Android Support库(你用23的话应该还是Support库体系),确保所有Support库的版本都和compileSdkVersion一致,比如统一用23.4.0,绝对不能混用高于23的版本。
  • 自定义缺失的样式
    如果你必须保留这些样式的视觉效果,可以在项目的res/values/styles.xml里手动复刻这两个样式,模仿高版本系统的效果:

    <style name="TextAppearance.Material.Widget.Button.Borderless.Colored" parent="TextAppearance.Material.Widget.Button.Borderless">
        <item name="android:textColor">?attr/colorAccent</item>
    </style>
    
    <style name="TextAppearance.Material.Widget.Button.Colored" parent="TextAppearance.Material.Widget.Button">
        <item name="android:textColor">?attr/colorAccent</item>
    </style>
    

    这样编译时就会优先使用你自定义的样式,不会再去找系统里不存在的资源了。

最后别忘了执行Clean Project然后Rebuild Project,有时候Gradle缓存会残留旧的资源引用,清理后重建能解决不少奇怪的小问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:15:55