M1芯片MacBook Air运行Flutter时pod安装失败、安卓模拟器无法构建问题
M1芯片MacBook Air Flutter开发异常问题解决方案
问题1:pod install抛出Encoding::CompatibilityError编码错误
- 打开终端配置文件:使用Zsh则编辑
~/.zshrc,使用Bash则编辑~/.bash_profile,添加以下3行全局编码配置:
export LANG=en_US.UTF-8 export LC_ALL=en_US.UTF-8 export LC_CTYPE=en_US.UTF-8
执行source ~/.zshrc(对应Bash则执行source ~/.bash_profile)使配置生效,重启Android Studio后重新执行构建流程即可。
- 若仍报错,可进入项目
ios目录,执行指定编码的pod安装命令:env LC_ALL=en_US.UTF-8 pod install。
问题2:Rosetta转译终端执行flutter run后卡在VM Service连接,抛出SocketException: Connection refused
- 优先升级Flutter到3.0及以上稳定版本,该版本已原生适配M1芯片架构,无需通过Rosetta转译运行终端,可直接解决VM Service连接异常问题。
- 若需保留Rosetta运行方案,打开iOS项目的Runner配置,在
Build Settings→Excluded Architectures中,为Debug模式添加arm64架构,同时在项目ios/Podfile中添加以下配置:
post_install do |installer| installer.pods_project.build_configurations.each do |config| config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64" end end
执行pod deintegrate后重新执行pod install,再运行项目即可。
问题3:安卓模拟器卡在APK安装步骤,切换x86_64架构构建失败
- M1芯片原生适配
arm64-v8a架构的安卓模拟器,直接在AVD Manager中选择系统镜像为arm64-v8a架构的Android 12及以上版本创建模拟器,即可正常安装运行APK,无需使用x86_64架构镜像。 - 若必须使用x86_64架构镜像,在项目
android/app/build.gradle文件中添加对应架构的编译配置:
android { defaultConfig { ndk { abiFilters 'arm64-v8a', 'armeabi-v7a', 'x86_64' } } }
同步Gradle配置后重新构建即可解决构建失败问题。
内容的提问来源于stack exchange,提问作者Sibusiso Mahlangu
相关产品推荐
相关产品推荐

