Flutter 碰到的各种坑 持续更新

Android转flutter 也有1年多了 ,在新公司将一个产品用flutter从零开始开发, 感觉flutter 还是不太稳定,各种问题还是比较多 ,总之这次体验还是比较差。。

Error on line 21, column 5 of pubspec.yaml: A dependency may only have one source.

当时是pubspec.yaml文件添加库的时候  不能把代码跟sdk对齐,应该是 跟sdk对齐会被认为是跟他一个节点?

使用lutter upgrade等时提示waiting for another flutter command to release the startup lockf

flutter包下 bin/chache/loadflie文件 删除

AndroidX结合使用会产生错误:无法解决以下问题:Landroid / support / v4 / util / ArrayMap;

修改 ./android/gradle.properties

增加两行

android.enableJetifier=true

android.useAndroidX=true

org.gradle.jvmargs=-Xmx1536M

底部tab切换页面刷新问题

ios 坑

flutter 如果更换第三方库 需要在ios的BuildSetting path中 删除对应的包和他的上一行

突然d8编译报错

Tips: please make sure your all configurations are correct, but still black screen

如果您的MainActivity扩展io.flutter.embedding.android.FlutterActivity并覆盖了该configureFlutterEngine功能

请不要忘记添加 super.configureFlutterEngine(flutterEngine)

请不要添加GeneratedPluginRegistrant.registerWith(flutterEngine),插件将立即自动注册

flutter deviceloading 一直卡在链接设备上

关闭后台dart进程

 所有第三方项目都module not fount

iOS pod Error installing libwebp错误超详细解决办法

1、pod repo 查看 cocoapods 在本机的PATH

2、拼接地址:由1所得出path拼接为,path/Specs/1/9/2/libwebp

3、右键finder前往文件夹,将2所得地址输入,前往

4、打开你要加载的版本相应的文件夹,如我的错误信息为Installing libwebp (1.0.0),则用文本编辑打开1.0.0文件夹的json文件

5、将json中source下git地址更改为https://github.com/webmproject/libwebp.git

flutter 突然不行的修复缓存

flutter pub cache repair

flutter clean

flutter更新ios依赖时,pod install 卡住

pod install --verbose --no-repo-update

'flutter 无法打开“iproxy”,因为无法验证开发者。'

sudo xattr -d com.apple.quarantine /Users/xuezhenbo/data/flutter-1.22.3/bin/cache/artifacts/usbmuxd/iproxy

Vsync:this 报错
用 with 关键字后跟 一个或者多个 mixin 名字来实现 mixin
class text with TickerProviderStateMixin {
}

flutter for ios 无法打开“idevicesyslog”,因为无法验证开发者

先在终端输入
sudo spctl --master-disable
然后在设置 -> 安全与隐私 -> 通用 -> 运行从以下位置下载的App中会新增一个请求,点允许

Flutter 第三方包依赖的库冲突

Because every version of flutter_test from sdk depends on package_resolver 1.0.4 which depends on http ^0.11.0, every version of flutter_test from sdk requires http ^0.11.0.
And because cached_network_image >=0.5.0 depends on flutter_cache_manager ^0.2.0 which depends on http ^0.12.0, flutter_test from sdk is incompatible with cached_network_image >=0.5.0.
So, because passion_timer_scoped depends on both cached_network_image ^0.5.0 and flutter_test any from sdk, version solving failed.
当你库和多的时候,比如a库需要依赖c库的5.0版本,b库需要依赖c库的7.0版本,这个时候你就需要强制指定c库的版本为7.0版本
dependency_overrides
    冲突的库: ^强制指定版本

升级flutter版本后莫名出现的错误,原因是导入的第三方库与最新的版本不符,升级版本即可
 
../../../data/flutter/.pub-cache/hosted/pub.flutter-io.cn/path_provider_windows-0.0.4+3/lib/src/path_provider_windows_real.dart:126:25: Error: The getter 'addressOf' isn't defined for the class 'GUID'.
- 'GUID' is from 'package:win32/src/structs.dart' ('../../../data/flutter/.pub-cache/hosted/pub.flutter-io.cn/win32-1.7.4/lib/src/structs.dart').
Try correcting the name to the name of an existing getter, or defining a getter or field named 'addressOf'.
          knownFolderID.addressOf, KF_FLAG_DEFAULT, NULL, pathPtrPtr);
                        ^^^^^^^^^

TextField 长按或者反复点击报错

查看间接直接依赖的第三方库
flutter pub deps
android Unable to load class 'javax.xml.bind.JAXBException’.
Java版本过高,改为1.8
下面是操作图

  

Provider 高版本 取Model报错
import 'package:provider/provider.dart’;// 需要手动导包

context.watch<UserModel>() // 报错

kotlin更新报错,无法更新到kotlin-stdlib-jre7:1.3.60

kotlin插件升级到1.3.60时kotlin-stdlib-jre7已过时无法更新升级
解决方法:
将kotlin-stdlib-jre7换成kotlin-stdlib-jdk7,就可以更新下载最新的kotlin插件了

如何取消返回按钮的宽

leading :null,
automaticallyImplyLeading : false,

将布局顶到状态栏

MediaQuery.removePadding(
    removeTop:true
)
顶部状态栏的高度
// appbar高度
// AppBarTheme.of(context).toolbarHeight ?? kToolbarHeight
// 获取状态栏高度
// MediaQuery.of(context).padding.top

Flutter Xcode运行的时候提示Command PhaseScriptExecution failed with a nonzero exit code

将导致问题的库删掉重新加载一次
路由回到首页
Navigator.of(context).popUntil((route) => route.isFirst);

Webview 证书异常显示白屏和https白屏问题  
找到WebViewClient修改他的实现函数
@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
  // super.onReceivedSslError(view, handler, error);
  //handler.cancel();// super中默认的处理方式,WebView变成空白页
  if (handler != null) {
    handler.proceed();// TODO 忽略证书的错误继续加载页面内容,不会变成空白页面
  }
}

Flutter for IOS 出现版本跟缓存版本不对应

CocoaPods could not find compatible versions for pod "tau_sound_core": In Podfile: flutter_sound (from .symlinks/plugins/flutter_sound/ios) was resolved to 8.0.2+1, which depends on tau_sound_core (= 8.0.2+1)
None of your spec sources contain a spec satisfying the dependency: tau_sound_core (= 8.0.2+1).
首先确认Podfile文件中 platform :ios, 10.0 以上
 
cd ios
pod cache clean --all
rm Podfile.lock
rm -rf .symlinks/
cd ..
flutter clean
flutter pub get
cd ios
pod update
pod repo update
pod install --repo-update
pod update
pod install
cd ..

Command PhaseScriptExecution failed with a nonzero exit code

在 APPNAME/ios/App/Pods/Target Support Files/Pods-App/Pods-App-frameworks.sh 中将 44行替换
 临时解决 每次pod install 后都需要重新设置  想真正解决需要升级flutter 3.7.11版本
source="$(readlink "${source}")”
替换为
source="$(readlink -f "${source}")"

编译突然出现 package_config.json does not exist.

Did you run this command from the same directory as your pubspec.yaml file?

flutter clean
flutter pub get

  • 12
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值