扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
新建一个Flutter工程,android模块。
创新互联公司是专业的平南网站建设公司,平南接单;提供成都做网站、成都网站设计,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行平南网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
1,只有一个Activity组件,它是Dart层绘制Widget的容器。
2,Application配置FlutterApplication。
应用Application配置io.flutter.app.FlutterApplication类,App首次启动时,初始化。
调用FlutterMain.startInitialization()方法。
initConfig方法,从AndroidManfest.xml配置的applicaion节点获取meta-data数据,初始化以下默认值。
这些值都是使用中用到的name,例如,抽取apk中asset资源时,flutter_assets打包目录,打包产物data名称。
initResources方法, 初始化资源。
在Flutter打包apk的asset目录下,包括fluttter_asset目录/资源项,将资源从apk中抽取,保存在 Context.getDir("flutter", 0) 目录下。
/data/user/0/包名/app_flutter目录。
在目录中创建一个时间戳文件,根据apk版本和包信息记录的lastUpdateTime更新时间,第二次启动时,若apk未更新,不需要再次抽取。
加载so库,libflutter.so,System.loadLibrary()。
主页面继承FlutterActivity,配置启动模式singleTop。
FlutterActivity类在io.flutter.app包, (区别io.flutter.embedding.android包), 组件生命周期委托给FlutterActivityDelegate类。
组件启动,onCreate方法。
FlutterMain.ensureInitializationComplete方法,确保资源成功抽取完成,创建FlutterView视图(io.flutter.view),继承SurfaceView类,setContentView方法,设置组件主布局即FlutterView视图。
最后,根据Bundle路径,runBundle()加载运行,
调用FlutterView的runFromBundle方法,入口点在dart的main方法,
通过FlutterNativeView,调用FlutterJNI的native方法。
nativeRunBundleAndSnapshotFromLibrary方法。
任重而道远
环境准备阶段:
android-studio 版本:android-studio-ide-191.5977832-windows.exe 3.5.2
flutter版本:stable 版本 (完成系统环境变量 path配置)
dart版本:2.12.0 (完成系统环境变量 path配置)
完成相关软件安装。
配置flutter相关SDK及andriod studio路径:
flutter config --android-sdk="C:\Users\Administrator\AppData\Local\Android\Sdk"
flutter config --android-studio-dir="D:\Program Files\Android\Android Studio"
执行flutter doctor运行成功。
夜神模拟器地址:D:\Program Files\Nox\bin (完成系统环境变量 path配置)
andriod SDK tools:C:\Users\Administrator\AppData\Local\Android\Sdk\platform-tools (完成系统环境变量 path配置)
nox_adb.exe connect 127.0.0.1:62001
dart SDK:D:\software\dartsdk-windows-x64-release\dart-sdk\bin
将C:\Users\Administrator\AppData\Local\Android\Sdk\platform-tools 下面adb.exe 复制至D:\Program Files\Nox\bin覆盖
adb.exe,此外重新复制adb.exe命名为nox_adb.exe,替换原有的nox_adb.exe。
cdm 输入nox_adb version 及adb version发现版本一致。
启动野神模拟器,输入adb devices发现虚拟设备,执行flutter devices发现 127.0.0.1:62001 设备。
修改C:\learn_flutter\first_flutter\android\gradle\wrapper\gradle-wrapper.properties
distributionUrl=
修改C:\learn_flutter\first_flutter\android\build.gradle
buildscript {
ext.kotlin_version = '1.3.50'
repositories {
// google()
// jcenter()
maven { url ' ' }
maven { url ' ' }
maven { url ' ' }
}
}
allprojects {
repositories {
// google()
// jcenter()
maven { url ' ' }
maven { url ' ' }
maven { url ' ' }
}
}
修改:C:\win-flutter\flutter\packages\flutter_tools\gradle\flutter.gradle
buildscript {
repositories {
// google()
// jcenter()
maven { url ' ' }
maven { url ' ' }
maven { url ' ' }
}
dependencies {
classpath 'com.android.tools.build:gradle:4.1.0'
}
}
//private static final String DEFAULT_MAVEN_HOST = " ";
private static final String DEFAULT_MAVEN_HOST = " ";
修改:C:\win-flutter\flutter\packages\flutter_tools\gradle\resolve_dependencies.gradle
repositories {
google()
jcenter()
maven {
//url "$storageUrl/download.flutter.io"
url " "
}
}
执行 flutter run启动成功。
环境搭建坑点在于JDK兼容问题以及网络问题。
[img]最近在公司比较空闲,正好又重新申请换了台m1开发。顺便花点时间把flutter配置和安装时遇到的问题梳理了一下,相关报错截图未保存,纯属记录自己的flutter之旅,那现在就开始吧~
安装可参考链接:Flutter中文网
(该路径会有变化,可以关注Flutter社区,随时更新)
Documents为目录,fluttersdk为sdk文件夹
cd 到对应的项目工程中执行命令:
在终端中执行 flutter doctor 查看Android和iOS的开发环境,监测到依赖若有缺失,会给出缺失的依赖的安装结果,依照提示进行安装即可。
在命令终端执行相关命令:
打开Android Studio应用,打开菜单项Preferences Plugins中搜索Flutter插件并点击install进行安装
打开 VS Code,可点击 View - Command Palette,搜索flutter并点击install进行安装
首先你的环境没有问题 至少 flutter doctor没有问题
1.安装 homebrew( )
2.打开终端并运行如下这些命令:
cd /Users/XXX/XXX/zhilincommunity/ios 切换到你的ios目录
执行
如果因为网络导致第三方支持不成功 尝试
等待完成
之前安装flutter sdk已经安装ok了,但是最近升级了一下flutter版本到1.26,发现崩了,记录一下出的错及解决方法。
提前已经安装好android studio 及 android 环境
1,运行flutter_console,输入flutter doctor 闪退问题
cmd闪退,放到PowerShell中执行,我是发现以下的错误
fix:PowerShell最低要求为5.0,
升级方案:
2:运行flutter doctor 无反应问题
第一种方案-检查环境变量配置
第二种方案-fc
3:android studio创建flutter project时间比较长问题
运行flutter
报错提示上看得执行flutter doctor --android-licenses
到此就可以正常执行了
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流