flutter,升级dart sdk

如题,升级dart sdk,可以先通过dart --version查看具体的版本号,或者执行flutter --version也是可以看到dart sdk的版本的。

升级dart sdk和升级flutter sdk是不一样的,两者千万不要搞混了。

 

废话不多说,其实我就想说一句,dart sdk不建议升级。

为什么这么说呢,原因很简单,因为flutter sdk中自带了匹配flutter sdk版本的dart sdk(flutter sdk和dart sdk的版本要匹配,不是任意的dart sdk版本都能匹配任意的flutter

sdk版本,这一点官方已经帮我们做了。在你下载的flutter sdk中就自带了匹配版本的dart sdk)。如果强行手动去升级dart sdk会报错,flutter项目都会出问题的。

 

如果说了还不信,那么好吧,我还是告诉你们最简单的dart sdk的升级方法吧(网上有各种命令行brew upgrade dart的升级方式https://dart.dev/get-dart,自己参考即可,我这种是最简单的):

直接上步骤:

1、进入https://dart.dev/tools/sdk/archive目录,下载对应渠道对应版本的sdk即可;

注意选版本,选平台,再下载;

2、下载之后放到自己的指定目录里面,在flutter sdk目录里面:

如图,我的flutter sdk目录是:/Users/mac/workSpace/02_development/flutter
而dart sdk的目录是:/Users/mac/workSpace/02_development/flutter/bin/cache/dart-sdk

直接替换就ok了(还是建议保留原来的sdk,重命名下先)。

 

但是,如果你按照这样做了,你再重启Android Studio时会发现项目不报错,但是run就会报错(或者执行flutter相关的命令也会报错)。。。悲剧了吧,叫你别升级。

因为官方的flutter sdk中已经自带了匹配版本的dart sdk。所以不要自己手动去替换。不要自己手动去替换。不要自己手动去替换。

其实还告诉你,如果没有dart sdk,你在执行flutter doctor命令时,会自动去下载匹配flutter sdk版本的dart sdk。也可以直接删掉刚才目录下的cache(/Users/mac/workSpace/02_development/flutter/bin/cache)这个目录,重新打开项目时,android stuido会自动去下载新的dart sdk文件和其他的配置文件。无需手动。

 

完毕。

  • 11
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
Flutter 是一个跨平台的移动应用开发框架,它可以让开发者使用一套代码同时开发 iOS 和 Android 应用。而在某些情况下,我们可能需要集成原生 SDK 实现一些功能。本文将介绍如何在 Flutter 中集成原生 SDK。 首先,我们需要在 Flutter 中创建一个平台通道(Platform Channel)来实现 Flutter 和原生代码的通信。 1.创建一个平台通道 在 Flutter 中,平台通道定义了 Dart 代码和原生代码之间的通信方式。我们可以通过 MethodChannel、EventChannel 或 BasicMessageChannel 等方式来创建平台通道。 以 MethodChannel 为例,我们可以在 Flutter 中创建一个 MethodChannel: ``` final MethodChannel platformChannel = MethodChannel('com.example.platform_channel'); ``` 这里的 com.example.platform_channel 是一个字符串,用来标识 Flutter 和原生代码之间的通道。 2.在原生代码中实现方法 在原生代码中,我们需要实现与 Flutter 中定义的 MethodChannel 对应的方法。例如,我们可以在 Android 中创建一个名为 MyPlugin 的类来实现这个方法: ``` public class MyPlugin implements MethodCallHandler { private static final String CHANNEL = "com.example.platform_channel"; public static void registerWith(Registrar registrar) { final MethodChannel channel = new MethodChannel(registrar.messenger(), CHANNEL); channel.setMethodCallHandler(new MyPlugin()); } @Override public void onMethodCall(MethodCall call, Result result) { if (call.method.equals("getDeviceInfo")) { String deviceInfo = getDeviceInfo(); result.success(deviceInfo); } else { result.notImplemented(); } } private String getDeviceInfo() { // 获取设备信息的代码 return "device info"; } } ``` 这里的 getDeviceInfo 方法用来获取设备信息,并将结果返回给 Flutter。 3.在 Flutter 中调用方法 在 Flutter 中,我们可以通过 MethodChannel 来调用 MyPlugin 中实现的方法: ``` String deviceInfo = await platformChannel.invokeMethod('getDeviceInfo'); ``` 这里的 invokeMethod 方法用来调用 getDeviceInfo 方法,并将结果返回给 Flutter。 以上就是在 Flutter 中集成原生 SDK 的基本流程。在实际使用中,我们还需要注意一些细节,例如方法参数和返回值的类型转换等。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值