Flutter2.x升级3.x版本遇到的问题及解决方案

项目原本使用的Flutter版本为2.5.3,现在要升级到3.0.5版本,结果升级完后项目直接编译不通过,报了一堆的错误,如果你也是这种情况,可以按我接下来讲的操作试一试,反正我就是这么解决问题的。

先讲一下我的运行环境:

电脑系统:macOS 13.2.1

Android Studio版本:Chipmunk | 2021.2.1 Patch 1

JDK版本:11
 

目录

1、升级Gradle版本

        1.1、添加 allowInsecureProtocol属性

2、升级Kotlin版本

3、升级Room版本

4、排除Kotlin部分依赖


1、升级Gradle版本


首先查看项目的Gradle版本是不是大于7.4,如果不是,请使用大于这个版本的Gradle,并且将Gradle插件的版本升级到7.1.2以上。

因为在Flutter官网的Flutter3更新详解中提到

1.1、添加 allowInsecureProtocol属性

Gradle升完级,如果你的项目中有用到第三方仓库地址的,那么需要将Http类型的仓库的Url地址改为Https,否则会报下面的错误,不知道从哪个版本开始,Gradle不支持Http协议的仓库地址。

如果仓库地址改不了Https的可以使用 allowInsecureProtocol 属性 

maven {
            allowInsecureProtocol true
            url 'http://172.17.0.172:8081/repository/maven-releases/' }

2、升级Kotlin版本


如果你的项目使用了Kotlin,那么Kotlin的Gradle插件版本也需要一并升级,升级版本需要对应你的Gradle版本,下面的图是Kotlin官网对于Kotlin Gradle插件版本的要求

最简单的是直接升级到最新版本,当然你也可以看编译报错信息里提示需要的版本,比如我的报错信息提示需要1.7.10的版本,我就升到了1.7.10,因为项目没有用到Kotlin Gradle插件的最新API,所以1.7.10就够用了,不需要最新的完全支持版本。

我不升级到最新版还有一个重要的原因,那就是我将Kotlin Gradle插件升级到1.8.0时发现,kotlin-android-extensions这个插件没了,不再支持了!之前还只是警告这个插件已经被废弃,这下直接干没了。

 点我查看官网说明

我最爱的Kotlin功能就这么没了!!!我需要将以前所有用到kotlin-android-extensions插件的页面都替换成view-binding的方式实现。。。太狗了

郭霖老师对于kotlin-android-extensions插件被废弃这事也深感愤恨,甚至专门写了一篇文章😂

kotlin-android-extensions插件也被废弃了?扶我起来 - 掘金

3、升级Room版本


如果你的项目使用到了Room数据,并且你的Kotlin版本在1.7以上,那么恭喜你,这个Room大概也得升级。。。

先检查一下你的Room版本,看看是不是低于2.4.3,如果低于这个版本,那么请将Room升级到这个版本或者更高,因为低于2.4.3版本的Room无法识别Kotlin1.7中的挂起函数,根本编译不过去(删除suspend关键字的不算)。

Room官网地址:

https://developer.android.com/jetpack/androidx/releases/room?hl=zh-cn#version_243_3

4、排除Kotlin部分依赖


如果你的项目报了 org.jetbrains.kotlin:kotlin-stdlib-jdk8 或者org.jetbrains.kotlin:kotlin-stdlib-jdk7这俩依赖的错误,但是你的项目并没有引用这依赖,那么在你的app/build.gradle中需要添加以下代码将这两个依赖排除

configurations.implementation {
    exclude group: 'org.jetbrains.kotlin', module: 'kotlin-stdlib-jdk8'
    exclude group: 'org.jetbrains.kotlin', module: 'kotlin-stdlib-jdk7'
}


ok,修改到此,应该是没啥大问题了,如果你的项目还是编译不过去或者运行不起来,大概还是配置的问题,看看是不是还有其他第三方库或者插件要升级的,如果有遇到什么其他坑的,欢迎评论区留言,让更多人避避坑~

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
基于 Flutter 3.x 进行仿抖音跨平台混合开发,是一种使用最新版本Flutter框架来开发类似抖音的应用程序的方法。 Flutter是一种跨平台的开发框架,可以让开发者使用同一套代码同时在iOS和Android平台上构建高性能的应用程序。它提供了丰富的UI组件和工具,使开发过程更加简单和高效。 要实现仿抖音的跨平台混合开发,首先需要对抖音的功能和界面进行分析和设计。然后,使用Flutter框架来实现这些功能和界面。 Flutter提供了丰富的UI组件,如按钮、文本、图片、视频播放等,可以用于构建抖音的各种界面元素。开发者可以使用Dart语言来编写业务逻辑,同时可以使用Flutter提供的hot reload功能实时预览和调试应用程序。 为了实现跨平台开发,开发者可以使用Flutter的多平台支持。Flutter可以生成原生的iOS和Android应用程序,以及Web和桌面应用程序。这使得开发者可以在不同的平台上发布和部署仿抖音的应用程序。 在开发过程中,开发者可以使用Flutter的插件来集成各种第三方功能和服务,如视频播放、数据存储、社交分享等。这些插件可以帮助开发者更加方便地实现仿抖音的各种功能。 总之,基于Flutter 3.x进行仿抖音跨平台混合开发,是一种高效、灵活的开发方法。通过使用Flutter框架和相关工具,开发者可以快速构建出功能完善、界面精美的仿抖音应用程序,并在多个平台上进行发布和部署。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值