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

这篇具有很好参考价值的文章主要介绍了关于安卓编译报错(一)kotlin依赖报错。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景

杂乱的项目依赖,成为了安卓项目的噩梦。版本号的不统一,经常导致一些依赖冲突。所以有了此文。

现象

安卓项目rebuild或者打release包的时候,存在报错情况:
(一)kotlin version编译不一致导致报错

compiled with an incompatible version of Kotlin. 
The binary version of its metadata is 1.8.0, expected version is 1.6.0.

细看英文提示,就是说,项目编译的过程中,编译版本,使用的kotlin version和期望的版本不一致,导致无法编译通过。

那不就好办了吗?解决方法大致有以下:
(1)修改gradle版本,使之使用的kotlin版本和期待的kotlin版本一致。
(2)升级依赖,使之和编译的版本一致
(3)强制统一项目的kotlin版本
上述的几种方法,各有优缺点。


对于(1)来说,有些项目的gradle版本,不是说升级就升级的,对内,项目中涉及到的一些sdk依赖,配置文件声明,有众多联系,对外,涉及到一些三方自动打包工具编译环境,也会有众多关联,因此升级会带来很多时间,人力成本。而其优点,则是更新了整体的编译环境,速度,质量,可维护性都有所提高。


对于(2)来说,升级依赖,其影响主要是项目内。有些三方sdk由于设计存在的缺陷,大版本升级,往往会导致api废弃甚至遗失的情况,因此也会耗费极多的人力成本。


对于(3)来说,短期内,就能快速地解决问题。但是要注意,各个依赖关系中存在的版本偏差!不过,一般对于这种官方的版本,维护性都是极高的,所以版本跨度不大的情况下,兼容性都是极好的。

本文,将会以(3)方法,解决冲突引起的问题。
通过整理错误的log,归纳出一共有以下的冲突:

kotlin-stdlib
annotation-jvm
androidx.annotation
kotlin-stdlib-jdk7
kotlin-stdlib-jdk8

所以,这里要强制指定上述依赖的版本即可。
首先,通过点击gradle–>app–>help->dependencies即可看到项目的依赖,然后得出统一的版本号即可。

依赖有可能很多,所以建议复制下来对比着看。

而本次实战中,是通过修改项目根build.gradle来实现版本的统一,核心代码如下:

/*强制统一版本号*/
subprojects {
    configurations.all {
        resolutionStrategy {
            force "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
            force "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
            force "androidx.annotation:annotation:1.2.0"
            force "androidx.annotation:annotation-jvm:1.6.0"
            force "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
        }
    }
}

上述代码的意思,就是指定了kotlin相关的具体依赖的版本号,实际要指定哪些依赖,要看报错来做,不能一概而论。

最后rebuild,打release包成功,则认为修改成功。

that’a all-------------------------------------------------------------------------------------文章来源地址https://www.toymoban.com/news/detail-730030.html

到了这里,关于关于安卓编译报错(一)kotlin依赖报错的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

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

    Android Studio 工程在编译时 , 报如下错误 : 直接把报错信息翻译一下 : 报错的模块是 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 模块 , 就是 kotlin-stdlib-c

    2024年01月20日
    浏览(31)
  • 关于Keil MDK编译missing compiler version 5报错

    因为新版本的Keil不预装V5编译器(ARM compiler version 5),编译v5的项目时报以下这个错 解决方案: 下载ARM compiler version 5安装包并安装 ARM compiler version 5安装包 安装目录选择MDK5ARMARMCC 打开MDK5 再次编译就不会报错

    2024年02月11日
    浏览(27)
  • 关于UE4/UE5 无法正确使用VS2019进行编译运行(乱码报错)

            这是一个让我百思不得其解的问题,无论是上网查资料还是怎样去调整设置。总是感觉无法正确、彻底的解决。         通过学习,发现问题唯一的根源其实是VS的语言设置与你电脑系统的语言设置不兼容。我们只需要对系统的区域语言进行更改即可正常运行。如果

    2024年02月11日
    浏览(26)
  • Gradle Kotlin DSL 打包带上依赖

    Gradle version Gradle 8.2.1 build.gradle.kts 参考 https://blog.csdn.net/setlilei/article/details/123173339

    2024年02月15日
    浏览(25)
  • Android安卓实战项目(12)—关于身体分析,BMI计算,喝水提醒,食物卡路里计算APP【支持中英文切换】生活助手类APP(源码在文末)

    B站演示 【Android安卓实战项目(12)—生活助手类APP—关于身体分析,BMI计算,喝水提醒,食物卡路里计算APP【支持中英文切换】】 https://www.bilibili.com/video/BV1Wu4y1C76j/?share_source=copy_webvd_source=b2e9b9ed746acda34f499009647748ed 这段代码是一个Android应用程序的主要活动(Activity),它是一

    2024年02月10日
    浏览(31)
  • 安卓Kotlin面试题 41-50

    41、如何在 Kotlin 中实现 Builder 模式? 首先,在大多数情况下,您不需要在 Kotlin 中使用构建器,因为我们有 默认和命名参数 ,但如果您需要使用: //add private constructor if necessary class Car( val model: String?,val year: Int) {         private constructor(builder: Builder) : this(builder.model, bu

    2024年03月13日
    浏览(28)
  • Android 安卓开发语言kotlin与Java该如何选择

            如今在Android开发中,应用层开发语言主要是Java和Kotlin,Kotlin是后来加入的,主导的语言还是Java。kotlin的加入仿佛让会kotlin语言的开发者更屌一些,其实不然。         有人说kotlin的引入是解决开发者复杂的逻辑,并且对空指针控制的比较友好,但是我们在开

    2024年02月11日
    浏览(31)
  • [Kotlin]手把手教你写一个安卓APP(第一章注册登录)

    开发软件:Android Studio 1.创建项目默认选择Empty Activity                                                                      点击Next  2.生成项目设置包名选择开发语言(这里我用的是kotlin)  在生成项目后我们要做的就是添加需要的配置打开我们的app目录下的 buil

    2023年04月23日
    浏览(68)
  • 探索Kotlin K2编译器和Java编译器的功能和能力

    文章首发地址 Kotlin K2编译器是Kotlin语言的编译器,负责将Kotlin源代码转换为Java字节码或者其他目标平台的代码。K2编译器是Kotlin语言的核心组件之一,它的主要功能是将Kotlin代码编译为可在JVM上运行的字节码。 编译过程: Kotlin K2编译器将Kotlin源代码作为输入,并经过词法分

    2024年02月11日
    浏览(32)
  • android中gradle的kotlin编译配置选项

    1、Android中的配置 使用如下方式开启在Android中的gradle的kotlin编译配置: 该配置在其余平台不可用 以上配置会开启Kotlin/JVM 的上下文接收者原型功能,否则该功能不可用,开启后编码可以使用以下代码: 传递参数的发过誓可以直接在里面写 setFreeCompilerArgs([\\\"-opt-in=org.mylibrary.

    2024年02月07日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包