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

编译旧Android原生应用遇资源匹配错误及Gradle问题求助

解决Android编译时Material样式找不到的问题

嘿,别慌!这个问题我刚接触Android开发时也碰到过,其实就是SDK版本不匹配导致的,咱们一步步来搞定它:

问题原因

你遇到的两个错误提示里的样式——android:TextAppearance.Material.Widget.Button.Inverse和android:Widget.Material.Button.Colored——是**Android 6.0(API 23)**才正式加入系统的Material Design样式,但你的项目里compileSdkVersion设置的是22,编译工具自然找不到这些不存在的资源啦。

具体解决步骤

直接升级你的编译SDK版本到23及以上,同时同步相关依赖版本,修改后的build.gradle配置如下:

apply plugin: 'com.android.library'
android {
    // 把compileSdkVersion升级到23,对应Android 6.0
    compileSdkVersion 23
    // 同步升级buildToolsVersion,这里选23.0.3(稳定版本)
    buildToolsVersion "23.0.3"
    defaultConfig {
        minSdkVersion 14
        // targetSdkVersion建议和compileSdkVersion保持一致
        targetSdkVersion 23
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
    packagingOptions {
        exclude 'META-INF/ASL2.0'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/NOTICE.txt'
    }
}
dependencies {
    // 给play-services指定具体版本,避免自动升级带来的兼容问题,这里选适配API23的9.0.0
    compile 'com.google.android.gms:play-services:9.0.0'
    compile files('libs/jackson-core-asl-1.9.2.jar')
    compile files('libs/jackson-mapper-asl-1.9.2.jar')
    // support-v4版本要和compileSdkVersion匹配,这里选23.4.0
    compile 'com.android.support:support-v4:23.4.0'
}

额外注意事项

如果修改后还是有问题,检查一下项目里的styles.xml或者布局文件,有没有直接引用android:TextAppearance.Material...这类系统样式。如果有的话,可以换成AppCompat支持库的对应样式,比如:

  • 把android:TextAppearance.Material.Widget.Button.Inverse换成TextAppearance.AppCompat.Widget.Button.Inverse
  • 把android:Widget.Material.Button.Colored换成Widget.AppCompat.Button.Colored

这样即使后续需要兼容更低版本的系统,也能保证样式正常显示。

修改完配置后,点击Android Studio右上角的Sync Project with Gradle Files按钮同步一下,应该就能正常编译啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:35:08