Android Studio单设备无法运行简单应用,报Invoke-customs需min-api26错误
Android Studio 编译报错排查方向
核心错误说明
报错核心原因为:
Invoke-customs are only supported starting with Android O (--min-api 26)
该错误表示编译生成的字节码中包含了仅Android 8.0(API 26)及以上系统支持的Invoke-customs指令,同一份代码在你本地API 24环境可正常运行,可确定为学生本地构建环境配置问题,可能的问题点如下:
可能的问题点
- 本地配置覆盖项目配置:检查学生本地项目中的
gradle.properties、local.properties文件,是否存在强制修改minSdkVersion、编译选项的参数;同时确认学生打开的是正确的项目副本,没有误修改过build.gradle配置。 - Gradle缓存损坏导致依赖异常:学生本地Gradle缓存可能拉取了更高版本的第三方依赖,部分高版本依赖默认要求minSdk≥26,即使项目本身代码没有变动也会触发报错。可依次执行以下操作清理缓存:
- 点击AS菜单
Build > Clean Project - 删除项目根目录下的
.gradle隐藏文件夹 - 删除用户主目录下的
.gradle/caches文件夹 - 重新同步项目依赖并构建
- 点击AS菜单
- Android Gradle Plugin(AGP)版本不匹配:过高版本的AGP会默认启用部分需要高minSdk支持的编译特性,确认学生本地的项目AGP版本、Gradle版本和你本地的版本完全一致,避免版本差异带来的编译特性变化。
- JDK版本不匹配:如果学生本地配置的项目JDK版本高于你本地的版本,编译时可能生成包含Invoke-customs指令的字节码。建议统一使用AS自带的JDK,可在
File > Project Structure > SDK Location > JDK location中查看配置。 - 核心库脱糖配置缺失:如果项目需要兼容API 26以下版本,必须开启核心库脱糖支持,检查模块级
build.gradle中是否存在以下配置:
缺失脱糖配置时,Java 8及以上版本的特性编译后会生成不兼容低版本系统的字节码。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' } - 运行目标设备版本过低:确认学生运行应用所用的模拟器/真机系统版本不低于API 24,且运行配置没有强制指定低版本兼容参数。
内容的提问来源于stack exchange,提问作者Aldaron
相关产品推荐
相关产品推荐

