网站更新内容:请访问: https://bigdata.ministep.cn/

Flutter错误

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'...

  1. 打开 Flutter SDK 的安装目录, 找到 Flutter 的配置文件,文件路径在:Flutter安装目录/packages/flutter_tools/gradle/flutter.gradle

  2. 编辑 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'
        }
    }
  3. 将开发项目中的 android/build.gradle 的文件参照12的操作在来一遍

  4. 处理完后重新运行即可

#使用 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的目录,原因暂时未知

posted @ 2023-07-21 23:45  ministep88  阅读(57)  评论(0编辑  收藏  举报
网站更新内容:请访问:https://bigdata.ministep.cn/