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

Android Studio更新后,SDK25 Kotlin项目如何避免生成values-v26文件?

解决SDK 25下values-v26.xml资源错误的方案

很理解你不想因为升级SDK版本重写大量Kotlin代码的困扰,这个问题本质是Android Studio更新后,构建过程中引入了SDK 26的资源依赖,导致合并时生成了values-v26.xml,而你的项目编译SDK是25,无法识别其中的android:keyboardNavigationCluster属性。下面给你几个不用升级SDK 26就能解决的办法:

1. 锁定所有支持库的版本为SDK 25对应版本

首先检查你的build.gradle(Module: audiobook)文件,确保:

  • compileSdkVersion和targetSdkVersion保持为25
  • buildToolsVersion使用25.x.x的稳定版本(比如25.0.3)
  • 所有com.android.support开头的依赖库版本统一为25.x.x(比如25.4.0)

如果存在第三方库间接依赖了更高版本的支持库,你可以强制所有支持库使用25版本,在android块下方添加:

configurations.all {
    resolutionStrategy.eachDependency { details ->
        val requested = details.requested
        if (requested.group == "com.android.support" && !requested.name.startsWith("multidex")) {
            details.useVersion("25.4.0")
        }
    }
}

2. 手动声明缺失的属性(临时 workaround)

如果你暂时无法调整依赖版本,可以在项目的src/main/res/values/attrs.xml中手动声明android:keyboardNavigationCluster属性,让AAPT能识别它:

<resources>
    <declare-styleable name="View">
        <attr name="android:keyboardNavigationCluster" format="boolean" />
    </declare-styleable>
</resources>

3. 禁用AAPT2(不推荐,仅临时应急)

Android Studio更新后默认启用AAPT2,它的资源合并逻辑可能导致这个问题。你可以在项目根目录的gradle.properties中添加以下配置禁用AAPT2:

android.enableAapt2=false

注意:这个方法只是临时应急,因为AAPT2是官方推荐的构建工具,禁用后可能会影响其他构建特性,建议优先用前两种方法。

执行完上述操作后,清理并重新构建项目,应该就能避免生成values-v26.xml,解决资源找不到的错误了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:15:11