修改API后Android Studio报错:找不到指定Toolbar样式
刚碰到过一模一样的问题,修改API级别后出现这类样式找不到、AAPT2链接失败的错误,大多是依赖版本不匹配、缓存或者资源配置问题导致的,试试下面这些方案:
确保AppCompat依赖与compileSdkVersion版本匹配
打开模块下的build.gradle(Module: app)文件,检查你的AppCompat库版本(不管是旧的support库还是AndroidX的appcompat)和compileSdkVersion是否对应。比如如果你的compileSdkVersion设为33,那AndroidX的appcompat依赖应该是androidx.appcompat:appcompat:33.0.0左右,示例配置:android { compileSdkVersion 33 // 其他配置... } dependencies { implementation 'androidx.appcompat:appcompat:33.0.0' // 其他依赖... }特别注意:别混合使用旧的support库和AndroidX库,这很容易引发资源冲突。
清理缓存后重建项目
有时候是构建缓存搞的鬼,依次点击Android Studio顶部菜单的Build > Clean Project,完成后再点击Build > Rebuild Project,等构建完成后重新编译试试。检查样式文件的引用是否正确
打开res/values/styles.xml以及v21等版本对应的样式文件,看看是不是直接引用了Base.V21.Widget.AppCompat.Toolbar。如果是的话,可以尝试替换成Widget.AppCompat.Toolbar,或者确认你的AppCompat库确实包含这个V21的基础样式。另外也要检查有没有拼写错误,比如包名是否正确。临时禁用AAPT2(仅作排查用,不推荐长期使用)
如果上面的方法都没效果,可以试试临时禁用AAPT2来绕过问题,在项目根目录的gradle.properties文件里添加一行:android.enableAapt2=false不过要记住,AAPT2是官方推荐的资源编译工具,禁用后会失去一些新特性和性能优化,所以这个只是临时排查的手段,找到根源后还是要改回来。
核对API版本配置的兼容性
修改API后要确保compileSdkVersion、targetSdkVersion和minSdkVersion的设置合理:compileSdkVersion最好用你安装的最新稳定SDK版本,targetSdkVersion尽量和compileSdkVersion保持一致,minSdkVersion不要设置得过高导致兼容问题。
内容的提问来源于stack exchange,提问作者Homi Varma

