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

升级Gradle Plugin至3.1.0及Gradle至4.4后低API设备运行报错

解决Gradle升级后API<23设备运行报错的问题

先梳理下你的场景:
你完成了以下Gradle相关升级操作:

  • 将项目根目录build.gradle中的Android Gradle Plugin从3.0.1升级到3.1.0:
    classpath 'com.android.tools.build:gradle:3.1.0'
    
  • 将gradle-wrapper.properties中的Gradle版本从4.1升级到4.4:
    distributionUrl=https://services.gradle.org/distributions/gradle-4.4-all.zip
    
  • 删除了app模块build.gradle中的buildToolsVersion "26.0.2"配置

升级后在API级别低于23的虚拟设备运行时,触发了未找到android/view/View$OnScrollChangeListener的字节码错误。这个问题的核心原因是**View.OnScrollChangeListener是Android API 23才新增的接口**,低版本系统原生不支持,而升级AGP后构建逻辑的兼容性处理变化,加上Instant Run的参与,导致问题暴露。

下面是几个可行的解决方案,你可以按顺序尝试:

1. 启用Desugar兼容性处理

Android Gradle Plugin 3.0及以上支持Desugar工具,它能把高版本API的代码转换为兼容低版本的实现,完美解决这类API缺失问题。在app模块的build.gradle中添加以下配置:

android {
    compileOptions {
        coreLibraryDesugaringEnabled true
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

dependencies {
    coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.5'
}

添加后同步项目,重新构建运行,大部分情况下这个配置就能解决问题。

2. 检查并替换代码中的直接调用

如果你的代码里直接使用了View.OnScrollChangeListener,可以通过版本判断做兼容处理:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
    view.setOnScrollChangeListener(new View.OnScrollChangeListener() {
        @Override
        public void onScrollChange(View v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
            // 你的滚动逻辑
        }
    });
} else {
    // 针对API<23的设备,使用对应替代方案,比如ListView的OnScrollListener
}

如果是第三方依赖库用到了这个接口,那Desugar方案会更合适,毕竟你没法修改依赖的代码。

3. 暂时关闭Instant Run

错误发生在transformClassesWithInstantRunForJiveDailyMIPackDebug任务中,说明Instant Run可能和兼容性处理存在冲突。你可以通过以下步骤关闭:

  • 打开Android Studio的File > Settings > Build, Execution, Deployment > Instant Run
  • 取消勾选Enable Instant Run to hot swap code/resource changes on deploy
  • 重新构建并运行项目

4. 明确指定Build Tools版本

虽然AGP 3.0+可以自动匹配Build Tools版本,但有时候自动匹配的版本可能存在兼容性问题。你可以在app模块的build.gradle中重新指定和AGP 3.1.0兼容的版本,比如:

android {
    buildToolsVersion "27.0.3"
    // 其他配置...
}

AGP 3.1.0推荐搭配27.x系列的Build Tools版本,选合适的版本后同步项目即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:40:55