分析android :The binary version of its metadata is 1.8.0, expected version is 1.5.1.等系列问题

kotlin Compose 与 Kotlin 的兼容性对应关系 > Task :app:compileDebugKotlin FAILED w: ATTENTION! This build uses unsafe internal compiler arguments: -XXLanguage:+NonParenthesizedAnnotationsOnFunctionalTypes This mode is not recommended for production use, as no stability/compatibility guarantees 阅读详情
AI摘要

本文围绕Android项目打包时出现的错误展开。作者以自身报错内容为例,尝试多种方法解决,如添加旧版gradle结构、修改Kotlin依赖和插件版本等。最终发现问题与Gradle、Kotlin及Android Gradle Plugin版本对应关系有关,同时要注意三方库版本适配。

前言

当打包项目时会出现标题错误,有时候会弹出此错误但不影响打包,有时候会导致直接打包失败但可以直接在AS中安装,很是头大。

以我报错内容为例:【android其元数据的二进制版本为1.8.0,预期版本为1.5.1】,刚开始以为项目中有使用了 Kotlin 1.5.1 的版本呢,结果一顿搜索下来并未发现 此版本的任何信息?心里一万个草泥马狂奔。开始百度~

百度遇见很多版本的解决方案,大多不适用,具体分为以下几种:

情况1:

由于新版gradle 和 旧版gradle 文件格式并不相同,搜索到的大多是旧版gradle格式,例如存在 ext.kotlin_version = "1.5.31"代码行,结构大致如下:

buildscript {
    ext.kotlin_version = "1.5.31" // 设置你希望使用的Kotlin版本
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        classpath "com.android.tools.build:gradle:7.0.2" // Android插件
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // Kotlin插件
    }
}

//..

WTF,我项目中都没有这种结构,在相同位置的文件,新的文件内容是:

// Top-level build file where you can add configuration options common to all sub-projects/modules.
plugins {
    id 'com.android.application' version '8.3.0' apply false
    id 'com.android.library' version '8.3.0' apply false
    id 'org.jetbrains.kotlin.android' version '1.9.10' apply false
}

我尝试将 buildscript {}结构添加进该文件,但并未解决问题,需要注意的是这里仍然可以使用老的 buildscript,来配置需要的插件,但要写在plugins 上面,不然会报错。既然不行,也没做深究,遂继续找方法~

然后又在项目根目录下查找依赖树,看能不能找到些线索,在AS命令行执行./gradlew :app:dependencies,看的眼花缭乱,最终也没发现有用信息。

情况2:

修改kotlin的依赖版本和插件版本,如下:

根项目build.gradle中插件版本:

  id 'org.jetbrains.kotlin.android' version '1.9.10' apply false

奥,是ktx的拓展版本(这是目前在项目中能找到与Kotlin相关的两个地方了):

  implementation 'androidx.core:core-ktx:1.10.1'

修改完毕,开始打包,咔!又弹出此错误。我这版本号都改了,竟然报错的内容还一样,连报错的版本号都没变,彻底红温。

情况3:

继续搜索,转向stackoverflow,于是在这篇文章中得到灵感:
Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.5.1, expected version is 1.1.15

之前一直没注意到,gradle 版本号 和 gradle 插件版本,对Kotlin有什么影响,于是就照着别人版本号修改了一下,继续打包,咔!不出意外,又报错了,但报错内容不一样了,这不就好起来了吗。开始分析…

简单改了两个插件版本对比了一下,gradle版本没有变仍是7.5

gradle-7.5-bin.zip  +   
id 'com.android.application' version '7.4.2' +  
id 'com.android.library' version '7.4.2' +
id 'org.jetbrains.kotlin.android' version '1.8.10' = 
报错:The binary version of its metadata is 1.9.0, expected version is 1.7.1.

gradle-7.5-bin.zip  +   
id 'com.android.application' version '7.2.1' +  
id 'com.android.library' version '7.2.1' +
id 'org.jetbrains.kotlin.android' version '1.8.10' = 
报错:The binary version of its metadata is 1.8.0, expected version is 1.6.0.

好嘛!这… 虽然看不出来具体原因,但起码知道了和gradle版本相关,开始修改这两个版本,不急不急,继续 探索~

于是乎,就找到了以下这两个地址:Android Gradle 插件版本说明 和 Gradle版本和Kotlin版本对应关系,才发现原来他们两个还有着这么紧密的关系啊。
在这里插入图片描述

你可以根据项目所需的gradle版本 ,并选择相应的插件版本,并且要对照好你需要的Kotlin版本。

OK,知道问题所在之后,那就改吧,继续打包,不出意外还是出意外了,我项目选择的组合是

  • Kotlin 版本: 1.9.10
  • Gradle 版本:8.4
  • Android Gradle Plugin 版本:8.3.0

打包报错没有BuildConfig,在此不做叙述了,可以参考这篇文章:Android BuildConfig不生成的解决办法,没有此问题忽略。

顺利的话,修改完gradle相关版本,就能顺利打包而不报错了,但!也不在乎你依赖的三方库不会报错,例如我项目中使用了 RxHttp,而它的版本也与Kotlin版本有着一定关系:
在这里插入图片描述
Kotlin版本不对应也可能会报错,所以尽量修改为一个合适的版本,保持项目健壮性。

最后

之前遇到这种问题,大都是咔咔一顿复制粘贴,又是强制使用某个Kotlin版本又是不影响打包就忽略报错,想解决又心有余而力不足,事实证明,只要慢慢分析,就没有解决不了的问题,哈哈,再会!

Android Studio、JDK、AGP、Gradle、kotlin-gradle-plugin、flutter 版本兼容性问题 你从githb上clone了一个项目,本地跑的时候,各种报错。Android Studio、JDK、AGP、Gradle、kotlin-gradle-plugin 兼容性问题 阅读详情

相关推荐

解决Error:Kotlin: Module was compiled with an incompatible version of Kotlin. The binary version of ..

今天在启动spring boot项目时,idea报出错误:Error:Kotlin: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.5.1, expected version is 1.1.13。通过多种方式才解决了这个问题,同时记录了在解决问题的过程中产生的其他错误。..................

念兮为美 12万+

开发一款 SDK 需要注意哪些问题

上面这类错误相信遇到的应该不少,Java 有一套自己的 JDK 判断准则,Kotlin 也有,Kotlin metadata 的版本来自 KGP 版本,也即意味着,当你的 SDK 使用高版本的 KGP 编译时,业务方要么编译不过,要么被迫升级 KGP 版本,这会使业务方因为升级 Kotlin 而带来其他业务的不稳定性。SDK 提供抽象接口,业务方依赖接口调用,这么做的好处是,业务方面向接口调用使用简单,还能避免使用不稳定的内部实现,并且,内部实现可以进行混淆。

chuyouyinghe的专栏 1523

【IDEA】Idea 报错 Module was compiled with an incompatible version of Kotlin. The binary version of its

但是发现不管用,而且就算是清空编译目录也是不可以的,但是点击rebuild project 就是可以。关键这个是偶现的,我用的同一个环境,同一套代码,同一个git别人的能运行我的不能运行。以前我记得是编译一下就好了。点击这个小锤锤,编译项目。

九师兄 6139

idea编译报错:Error:Kotlin: Module was compiled with an incompatible version of Kotlin.

1. idea 编译报错信息 Error:Kotlin: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.5.1, expected version is 1.1.16. 2. 解决办法 重新编译项目 Build->Rebuild Project

编程者说的博客专栏 7906

间充质干细胞衰老机制与抗衰老干预策略研究

干细胞技术在再生医学领域具有广阔应用前景,其中间充质干细胞(MSCs)因其多向分化潜能和免疫调节特性备受关注。细胞衰老是影响干细胞治疗效果的共性难题,表现为增殖能力下降、端粒缩短等特征。通过表观遗传学分析发现,衰老MSCs存在DNA甲基化异常和组蛋白修饰改变;线粒体功能障碍导致ATP产量锐减,ROS累积显著增加。针对这些机制,研究者开发了包括小分子化合物筛选、CRISPR基因编辑和三维培养优化在内的多种干预策略。这些技术在组织修复、抗衰老治疗等应用场景中展现出重要价值,例如可提升心肌梗死修复效率2.3倍,缩

weixin_33502772的博客 227

Arthas实战(3)- CPU使用率高问题排查

Arthas实战(3)- CPU使用率高问题排查

java_liuyuan的博客 1731

分析android :The binary version of its metadata is 1.8.0, expected version is 1.5.1.等系列问题...

前言当打包项目时会出现标题错误,有时候会弹出此错误但不影响打包,有时候会导致直接打包失败但可以直接在AS中安装,很是头大。以我报错内容为例:【android其元数据的二进制版本为1.8.0,预期版本为1.5.1】,刚开始以为项目中有使用了 Kotlin 1.5.1 的版本呢,结果一顿搜索下来并未发现 此版本的任何信息?心里...

cnzzs的博客 1090

华为鸿蒙系统也能用!5分钟搞定谷歌三件套安装(附最新APK下载链接)

本文为华为鸿蒙系统用户提供了一份详尽的谷歌三件套(Google Play服务、商店及框架)手动安装指南。文章核心在于无需Root,通过ADB命令获取设备信息,并从可靠来源下载匹配版本的APK,按照正确顺序安装,从而解决海外应用依赖问题,实现5分钟快速部署。

c7d8e9的博客 6447

Kotlin构建报错解决方案:The binary version of its metadata is 1.7.1, expected version is 1.5.1.

发布于 2023-03-30 17:31:436.3K0举报。

shuizhizhiyin的专栏 4400

基于PSO-BP神经网络的风电功率预测研究论文复现

风电功率预测。基于PSO-BP神经网络的风电功率预测论文复现。matlab程序,注释清晰。

weixin_825487230的博客 2294

【mip-NeRF】使用一组二维图像渲染3D场景视频(mip-NeRF论文复现)

本文对mip-NeRF模型的pytorch实现进行了复现

Ryan2k的博客 1841

Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.

解决Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.

chuyouyinghe的专栏 1579

C++碰撞检测库FCL安装(MinGW,CMake)

FCL碰撞检测库、libccd\Eigen库编译配置,全流程问题记录

weixin_45650767的博客 4673

Android 打包出现The binary version of its metadata is 1.6.0, expected version is 1.4.0(*.*.*)

你的gradle插件使用的是1.6.0,但是你引入的第三库使用的低版本。1、降低 gradle版本,4.0.1版本使用的是1.4.0。3、统一使用指定版本。这样就统一使用指定版本了。2、忽略检查后打包会明显加快。

黑马程序员-masai158 8483

【STM32篇】DRV8425驱动步进电机

【STM32篇】在上篇文章中使用了HR4988实现了步进电机的驱动,在实际运用过程,4988驱动步进电机会存在电机噪音太大的现象。本次将向各位友友介绍一个驱动简单且非常静音的一款步进电机驱动IC。

we_long的博客 3067

【同等学力】01-逻辑符号表达

F(x): x是确诊者,G(x):x有症状F(x): x是老人,G(x):x是宠物,L(x,y): x喜欢y。

super_mochi1 1879

The binary version of its metadata is 1.7.1, expected version is 1.5.1

问题是因为kotlin的版本不一致,修改根目录build.gradle。

wolf0706的专栏 963

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Module was compiled with an incompatible version of Kotlin.The binary version of its metadata is

摘要:遇到Kotlin版本不兼容问题,提示ObjectBox插件编译版本(1.8.0)高于当前Kotlin编译器版本(1.6.0)。建议解决方案是升级Kotlin编译器至1.8或更高版本,需在项目根目录的build.gradle文件中修改kotlin_version变量为'1.8.22'或更高。

weixin_40388758的博客 329

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

错误:Module was compiled with an incompatible version of Kotlin. The binary version of its metadata

kotlin编译错误

paradisexiao的专栏 2738

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

【错误记录】Android Studio 编译报错 ( Module was compiled with an incompatible version of Kotlin. The binary )

e: C:/Users/octop/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-common/1.7.10/bac80c520d0a9e3f3673bc2658c6ed02ef45a76a/kotlin-stdlib-common-1.7.10.jar!/META-INF/kotlin-stdlib-common.kotlin_module: Module was compiled with an incompa

让 学习 成为一种 习惯 ( 韩曙亮 の 技术博客 ) 1万+

Module was compiled with an incompatible version of Kotlin.

G:/software/jdk/caches/transforms-2/files-2.1/01f2cad5f0c66a06fa2643134e6e0c4f/jetified-kotlin-stdlib-common-1.8.10.jar!/META-INF/kotlin-stdlib-common.kotlin_module: Module was compiled with an incompatible version of Kotlin. The binary version of its meta

Within的博客 791

关于安卓编译报错(一)kotlin依赖报错

关于安卓编译报错(一)kotlin依赖报错

motosheep的博客 8339

Android Flutter混合开发-问题小结

背景 我想大多数的原生项目接触跨端方案,都有相似的背景,公司某项业务,进入高速发展阶段,产品希望快速在多端试错迭代,甚至需要保持2周一迭代的开发频率(比如我们项目~),如果继续保持Android/iOS原生开发,同一套功能,需要在Android、IOS都开发一遍,并且开发的成果双端也有可能是不统一的,会带来多余的测试压力,有限的工时内要完成双端的开发,并且要保证开发质量,给我们开发人员也带来巨大的压力(爆肝~)。 我们的项目使用的是Flutter跨端技术,下面总结一下我在使用Flutter遇到的一些问题

Json_Jerry的博客 4392

LIEF 版本演进全解析:从 0.6.0 到 2.0.0 的格式支持、API 变更与迁移指南

> 导读:本文以 LIEF 官方发布记录 [doc/sphinx/changelog.md](https://link.gitcode.com/i/10de3d00aa7952f4b85447072384c82f) 为主线,系统梳理这一可执行文件格式解析/改写库从首个公开版本到 2.0.0 的完整技术演进。读者将掌握各版本在 ELF/Mach-O/PE/COFF 等格式支持、Python/Rust

gitblog_00452的博客 488

androidstudio升级2.2出现导入第三方库出错解决方法

只需要在project目录下的builde.gradle加上这两行代码即可解决 classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.1' classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5'

Don的博客 412
上一篇: 重学 Android 自定义 View 系列(七):仿58同城加载动画
下一篇: 重学 Android 自定义 View 系列(八):星星评分控件(RatingBar)
_蓝橙
博客等级 码龄7年 1179粉丝 174原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值