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

将API 23降级至API 19时遇android:style/TextAppearance.Material未找到错误

解决API19降级时TextAppearance.Material资源找不到的问题

嘿,这个问题我之前帮朋友排查过,核心原因很明确:你碰到的TextAppearance.Material找不到的错误,是因为这个系统样式是Android API 21(也就是Lollipop)才新增的,而你把compileSdkVersion降到了19,编译时自然找不到高版本才有的资源。再加上你用的AppCompat库版本可能和API19不匹配,就触发了这个报错。

给你两个解决方案,优先推荐第二个,省得后续麻烦:

方案一:适配compileSdkVersion 19的AppCompat版本

  • 打开Module级别的build.gradle,把AppCompat依赖改成和API19对应的版本,比如v19.1.0:
    dependencies {
        implementation 'com.android.support:appcompat-v7:19.1.0'
    }
    
  • 同时检查Manifest里的主题,用AppCompat v19支持的基础主题,比如@style/Theme.AppCompat.Light,别用那些带Material后缀的高版本变体。

方案二:保留高版本compileSdk,只降级兼容版本(强烈推荐)

其实没必要把compileSdkVersion也降到19,你只需要把minSdkVersion和targetSdkVersion设为19,compileSdkVersion继续用原来的23(甚至更高,比如28,这是Android Support Library的最后一个稳定版本)就行:

android {
    compileSdkVersion 23
    defaultConfig {
        minSdkVersion 19
        targetSdkVersion 19
        // 其他配置比如applicationId、versionCode之类的不动
    }
    // 你之前加的resolutionStrategy如果是为了强制依赖版本,也可以保留,但要确保和compileSdk匹配
}

这么做的好处是:编译时能访问高版本的系统资源,AppCompat库能正常发挥向下兼容的作用,同时你的APP依然能在API19的设备上运行。而且还能避免后续碰到其他高版本资源找不到的问题。

额外注意事项

你Manifest里的android:roundIcon属性是API25才有的,API19不支持,必须删掉,不然也会报资源错误。修改后的Manifest示例:

<application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:supportsRtl="true" 
    android:theme="@style/Theme.AppCompat">
    <activity android:name=".MainActivity" android:noHistory="true">
        <!-- 记得加上启动页的intent-filter,不然APP可能无法正常打开 -->
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:23:31