LTDSA
不疯魔不成活
LTDSA

Flutter 开发过程中的一些坑

最近考虑跨平台开发,无奈不太了解 Objective-C 和 Swift 语言,手头也没有 macOS 设备,故尝试 Flutter,顺便学习一下 Dart 语言。接下来聊聊开发过程中的一些坑。

Android license status unknown

底下还有一条详情:“Try re-installing or updating your Android SDK Manager.”。

在网上搜索,得到的结果大多如下:将 SDK 目录下 emulator 的 bin 目录直接替换 tools 的 bin 目录。当然,可以这样操作最好,但我不属于这种情况,我的 emulator 目录下压根没有 bin。

于是我想,要是我把 Android Emulator 卸载重装呢?

事实证明这种方法是不可取的。在我这样操作之后,emulator 目录下不仅依然没有 bin,反倒是 tools 目录直接消失了。

众所周知,我是一个很喜欢折腾的人,于是我尝试了多种方法,最后发现:

Android Studio 把 SDK Tools 列为过时的软件包了。淦。

只需要在 Android Studio 的设置 – Appearance & Behavior – System Settings – Android SDK – SDK Tools 里把底下的“Hide Obsolete Packages”取消勾选,再找到“Android SDK Tools”,安装即可。

pub get failed (server unavailable)

我是用 Visual Studio Code 建的项目,不然连报错提示都没有。

这个问题是由于 Google 的下载站被墙了,导致拉不到资源。解决方法倒也容易。

打开 PowerShell,输入:

PUB_HOSTED_URL ===== https://pub.flutter-io.cn
FLUTTER_STORAGE_BASE_URL ===== https://storage.flutter-io.cn

Linux 的话……打开终端,输入:

export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn

macOS 也同样适用。

操作过后,再把你的 Flutter SDK 目录下的 pub-cache 目录给删了,重新新建项目就行。

Running Gradle task ‘assembleDebug’…

这句话本身没什么问题,但是一直卡在这里就有问题了。问题的根源还是 Gradle 服务器在国外,不是被墙就是访问奇慢。把源更换为阿里云就好。

主要是改 工程目录/android/build.gradle 和 Flutter SDK 目录/packages/flutter_tools/gradle/flutter.gradle 两个文件。

将这两个文件里 buildscript 和 allprojects 对象下的 repositories 中的 google() 和 jcenter() 删除或注释掉,然后分别加入:

maven { url 'https://maven.aliyun.com/repository/google' }
maven { url 'https://maven.aliyun.com/repository/jcenter' }
maven { url 'http://maven.aliyun.com/nexus/content/groups/public' }

重启 IDE,重新编译即可。

赞赏
本文链接(转载请注明出处):https://www.ltdsa.cn/?p=211

LTDSA

文章作者

不疯魔不成话

LTDSA

Flutter 开发过程中的一些坑
最近考虑跨平台开发,无奈不太了解 Objective-C 和 Swift 语言,手头也没有 macOS 设备,故尝试 Flutter,顺便学习一下 Dart 语言。接下来聊聊开发过程中的一些坑。 Android license s…
扫描二维码继续阅读
2020-03-23