Flutter错误
[Flutter错误 | 不器小窝](https://xingcxb.com/language/dart/b4845b/#%E5%9C%A8flutter%E5%BC%80%E5%8F%91%E4%B8%AD-%E5%B7%B2%E7%BB%8F%E5%AE%89%E8%A3%85%E4%BA%86cocopods-%E4%BD%86%E6%98%AF%E6%8F%90%E7%A4%BA%E6%9C%AA%E5%AE%89%E8%A3%85%E7%9A%84%E9%97%AE%E9%A2%98)
#前言
哪个程序员没有一个写App
的梦呢,这不喜欢折腾的我又来了,本文持续更新...
#Evaluation of this constant expression throws an exception
这个是因为父控件使用const
修饰,是一个常量,所以子控件里不能有一个变量,解决方法,去掉const
#如何理解 flutter
中的 StatelessWidget
、 StatefulWidget
、 State
StatelessWidget
是 Flutter
中最基本的 Widget
类型之一,它不维护状态,也就是说,它的状态是由创建它的 Flutter
框架维护的。StatelessWidget
通常用于构建静态的、不随时间变化的 UI
组件,例如标题、按钮、文本等。
StatefulWidget
是 Flutter
中的另一种基本 Widget
类型,它维护状态。当 StatefulWidget
重新渲染时,它的状态会重新创建,并且所有的子 Widget
也会重新渲染。StatefulWidget
通常用于构建可变的、随时间变化的 UI
组件,例如列表、网格、进度条等。
State
是 Flutter
中的一个重要概念,它用于管理 Widget
的状态。在 Flutter
中,每个 Widget
都可以拥有一个 State
对象,这个 State
对象维护了该 Widget
的状态。例如,如果你创建一个列表 Widget
,你需要为该 Widget
创建一个 State
对象,用于维护列表的内容、排序等信息。当用户点击列表中的一个项时,你需要更新 State
对象中的状态,然后使用 Updater
函数更新 UI。
#运行 flutter
项目一直卡在 Running Gradle task 'assembleDebug'...
-
打开
Flutter SDK
的安装目录, 找到Flutter
的配置文件,文件路径在:Flutter安装目录/packages/flutter_tools/gradle/flutter.gradle
-
编辑
flutter.gradle
文件,找到repositories
节点,将节点中的google()
、jcenter()
注释掉,换成阿里的仓库... buildscript { repositories { // google() // jcenter() maven { url 'https://maven.aliyun.com/repository/google' } maven { url 'https://maven.aliyun.com/repository/jcenter' } maven { url 'https://maven.aliyun.com/nexus/content/groups/public' } } dependencies { classpath 'com.android.tools.build:gradle:7.2.0' } }
-
将开发项目中的
android/build.gradle
的文件参照1
、2
的操作在来一遍 -
处理完后重新运行即可
#使用 http
库出现 Unhandled Exception: Failed host lookup: 'xxx.com'
这是没有网络情况造成的,看看本地网络是否正常;看看是否给程序网络权限
#配置程序的网络权限
在项目的 android/src/main/AndroidManifest.xml
下添加下列代码:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.untitled">
<!-- 添加下面的代码 begin -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<!-- end -->
<application
...
注意:不要放在application
里
#flutter
升级提示错误 Your flutter checkout has local changes that would be erased by upgrading.
#具体错误信息
Your flutter checkout has local changes that would be erased by upgrading. If you want to keep these changes, it is
recommended that you stash them via "git stash" or else commit the changes to a local branch. If it is okay to remove local
changes, then re-run this command with "--force".
#解决方案
简单方案:
flutter upgrade --force
先查看 flutter
的分支,如果不是 dev
分支那就将其切换到 dev
分支即可
# 查看分支
flutter channel
# 显示的内容
Flutter channels:
master
dev
beta
* stable
# 切换分支
flutter channel dev
# 更新flutter
flutter upgrade
# (备用)如果上面更新失败那么就使用下面的更新命令
flutter upgrade --force
当更新了
flutter
后要注意运行一下flutter doctor
,因为这时候编辑器会抛出找不到dart sdk
的错误
#iOS 14.3
调试项目时出现了 file not found: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphoneos.a
在iOS 14.3
的把ARC
相关的库移除了,主要原因是系统已经内置了
#解决方案
更新flutter
的版本即可
#在Flutter
开发中,已经安装了cocopods
,但是提示未安装的问题
运行项目时提示CocoaPods not installed or not in valid state.
但是已经安装了CocoaPods
#解决方案
#方案一
按提示安装CocoaPods
#方案二
关闭android studio
然后再开启
#奇怪的问题
在大地老师的视频里面看到,创建了新的项目时又重新打开当前创建项目下的android
的目录,原因暂时未知