买了新的Macbook Pro(i5 16G 512G 2020款),今天有空正好拿出来配置一下常用的开发环境。期间遇到了一些问题,这里稍作记录,希望能帮到有同样问题的网友。

新款Macbook没有USB口,硬件设备兼容性很差。需要额外购买拓展坞,才能外接U盘、键盘、连接显示器等外设。

zsh主题agnoster显示乱码

安装好oh my zsh,配置使用agnoster主题,终端会出现乱码。这是由于agnoster使用了三角形等特殊符号,默认字体不支持,需要powerline字体才能正常显示。

解决办法如下:

1. 克隆/下载powerline字体库: git clone https://github.com/powerline/fonts.git

2. 安装字体: cd fonts;  bash install.sh

3. 更改iTerm使用的字体:iTerm -> Preferences -> Profiles -> Text -> Font,搜索powerline,选择一个字体。

iTerm设置Powerline字体
iTerm设置Powerline字体

然后重新打开iTerm窗口,箭头等符号就能正常显示了。

VS Code终端乱码的解决办法类似,将字体设置为Powerline即可:

VS Code设置Terminal字体
VS Code设置Terminal字体

Flutter同意Android licenses出现异常

安装好Flutter后,运行flutter doctor -v,提示安卓协议未签署。运行提示的flutter doctor --android-licenses,出现如下错误:

Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
  at com.android.repository.api.SchemaModule$SchemaModuleVersion.(SchemaModule.java:156)
  at com.android.repository.api.SchemaModule.(SchemaModule.java:75)
  at com.android.sdklib.repository.AndroidSdkHandler.(AndroidSdkHandler.java:81)
  at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:73)
  at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:48)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.annotation.XmlSchema
  at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
  at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
  at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
  ... 5 more

这是由于安装安卓SDK时未安装 Android SDK Command-line Tools,打开Android Studio, preferences  > Settings > Appearance & Behavior > System Settings > Android SDK > SDK Tools,勾选“Android SDK Command-line Tools(latest)”,然后点击“OK”:

Android Studio安装安卓SDK命令行工具
Android Studio安装安卓SDK命令行工具

安装好后,再次运行 flutter doctor --android-licenses,就能正常签署协议了。

flutter doctor提示Android Studio未安装flutter/Dart插件

本人用的flutter 1.22.6版本,在Android Studio中安装了flutter和Dart插件,flutter doctor -v仍然提示未安装。猜测这是由于旧版flutter不支持新版Android Studio导致。

这个问题不会影响实际开发,但是如果你是强迫症患者,可以通过下面的命令解决问题:

ln -s ~/Library/Application\ Support/Google/AndroidStudio4.2/plugins ~/Library/Application\ Support/AndroidStudio4.2

本人用的Android Studio 4.2版本,如果你是其他版本,请将命令中的4.2替换成实际版本。

再次运行 flutter doctor -v,警告已经消失。

git diff出现中文乱码

git status、ls等命令均正常输出中文,唯独git diffless 命令出现中文乱码。

解决方法:

export LESSCHARSET=utf-8

参考

1. zsh主题agnoster的配置和乱码问题的解决

2. [SOLVED] Flutter Android licenses exception

3. Flutter plugin not installed error; When running ‘flutter doctor’

4. MacOS系统ls命令输出中的@符号

5. MacOS下JetBrains IDE不显示横向滚动条