likes
comments
collection
share

Flutter已有项目导入,没法启动Android模拟器的解决方法(iOS模拟器可以启动)

作者站长头像
站长
· 阅读数 34

作为一个面向百度和面向DEMO编程的程序员,我学习新的技术和框架,首先第一就是研究一下别人的开源代码,为我所用嘛。

然而,从github下载的Flutter项目。并不是直接可以被IDE导入和自动化完成配置的,无论是Vscode直接打开还是Android Studio File->Open,打开的项目可以在Xcode的iOS模拟器直接运行,但是Android模拟器就不行。

iOS模拟器直接可以运行:

Flutter已有项目导入,没法启动Android模拟器的解决方法(iOS模拟器可以启动)

Android就不能调试运行:

Flutter已有项目导入,没法启动Android模拟器的解决方法(iOS模拟器可以启动)

报错信息大概就是gradle构建的脚本执行问题。

第一种通用的解决方法:

于是,我全局安装gradle:

brew install gradle

Windows上安装请到官网下载gradle最新文件包然后在环境变量把gradle的bin目录配置到系统环境变量,确保在PS(PowerShell)或者CMD可以运行gradle命令。官网还有各个平台的安装方法,这里就不多说了!

Flutter已有项目导入,没法启动Android模拟器的解决方法(iOS模拟器可以启动)

安装完成还是没法运行。

于是在Vscode项目,Android目录鼠标右键选择在Android Studio打开项目。

Flutter已有项目导入,没法启动Android模拟器的解决方法(iOS模拟器可以启动)

打开Android Studio时候一切按照默认的选择提示,然后切换工程文件为Android项目。

Flutter已有项目导入,没法启动Android模拟器的解决方法(iOS模拟器可以启动)

等待Android Studio的自动构建同步。

然后终于发现问题之所在:

Flutter已有项目导入,没法启动Android模拟器的解决方法(iOS模拟器可以启动)

原因是下载的别人的项目,构建项目的时候不会把Flutter SDK配置更改为我们自己本机的SDK配置目录。

解决办法就是自己手动配置自己本机的Flutter SDK信息:

Flutter已有项目导入,没法启动Android模拟器的解决方法(iOS模拟器可以启动)

添加自己的flutter sdk目录和版本等信息:

flutter.sdk=/Users/jiankian/Applications/flutter
flutter.versionName=1.0.0
flutter.versionCode=1
flutter.buildMode=debug

效果如下:

Flutter已有项目导入,没法启动Android模拟器的解决方法(iOS模拟器可以启动)

在Android Studio 中选择同步更新gradle配置(Vscode中则构建工具自动完成):

Flutter已有项目导入,没法启动Android模拟器的解决方法(iOS模拟器可以启动)

然后有爆出错误,在下边提示区的蓝色超链接点击继续,下载相应的依赖即可。

Flutter已有项目导入,没法启动Android模拟器的解决方法(iOS模拟器可以启动)

更新完成后便可运行了!

Flutter已有项目导入,没法启动Android模拟器的解决方法(iOS模拟器可以启动)

第二种mac/linux平台的解决方法:

dos平台和unix文件换行符不通用,在macOS平台,安装dos2unix

brew install dos2unix

然后,把报错的路径的gradle文件转为unix平台换行符

dos2unix ./android/gradle

转载自:https://juejin.cn/post/6844903640814059527
评论
请登录