Flutter问题记录(持续更新)

文章目录

      • 一、 Error installing libwebp
        • 1. 问题原因
        • 2. 解决方案
          • a. 终端输入pod repo查看cocoapods在本机的地址
          • b. 进入该文件地址/Speces/1/9/2/libwebp
          • c. 进入具体的报错版本
          • d. 执行pod install
      • 二、 SingleChildScrollView嵌套ListView等可滑动组件时产生滑动冲突
        • 1. 两个可滑动组件产生滑动冲突
        • 2. 解决方案
      • 三、 ld: in /Users/max/Documents/GitHub/music_grading_app/ios/Pods/WechatOpenSDK_Fuck/OpenSDK1.9.2/libWeChatSDK.a(WechatAuthSDK.o), building for iOS Simulator, but linking in object file built for iOS, file '/Users/max/Documents/GitHub/music_grading_app/ios/Pods/WechatOpenSDK_Fuck/OpenSDK1.9.2/libWeChatSDK.a' for architecture arm64
        • 1. xcode12弃用了arm64,但是有些第三方还在使用
        • 2. 解决方案
        • (1) 使用真机
        • (2)排除arm64体系
      • 四、Execution failed for task ':app:compileFlutterBuildDebug'.
      • 五、Execution failed for task ':app:compileDebugKotlin'.
        • 1. 问题原因
        • 2. 解决方案
          • (1) Android Studio—Preferences—Languages & Frameworks—Kotlin—更新到最新版
          • (2) 记住上一步的版本号,去android/build.gradle内修改buildscript
      • 六、 GetX: BottomSheet跳转到同一页面时首次可以,第二次点击无效
        • 1. 问题原因
        • 2. 解决方案
      • 七、 安卓模式下fluwx,调起微信支付失败
        • 1. 问题原因
        • 2. 解决方案
      • 八、Execution failed for task ':wakelock:compileDebugKotlin'.
      • 九、存储到本地的文件(图片、视频等文件),调用时找不到
        • 1. IOS端
        • 2. Android端
      • 十、循环Map时,map.values.map和map.values.forEach的区别
        • 1. Map.values.map
        • 2. Map.values.forEach
      • 十一、Container未设置color时,添加GestureDetector时无响应
        • 1. 给Contianer添加color
        • 2. GestureDetector修改behavior属性

一、 Error installing libwebp

在这里插入图片描述

1. 问题原因

无法正常连接libwebp库

2. 解决方案

a. 终端输入pod repo查看cocoapods在本机的地址

Flutter问题记录(持续更新)_第1张图片

b. 进入该文件地址/Speces/1/9/2/libwebp
c. 进入具体的报错版本

例如我这里的1.2.0,则修改里面的json文件,将Source改为https://github.com/webmproject/libwebp.git

d. 执行pod install

二、 SingleChildScrollView嵌套ListView等可滑动组件时产生滑动冲突

1. 两个可滑动组件产生滑动冲突

2. 解决方案

禁用内部可滑动组件,保留外部可滑动组件。修改ListView的physics属性为physics: new NeverScrollableScrollPhysics()

三、 ld: in /Users/max/Documents/GitHub/music_grading_app/ios/Pods/WechatOpenSDK_Fuck/OpenSDK1.9.2/libWeChatSDK.a(WechatAuthSDK.o), building for iOS Simulator, but linking in object file built for iOS, file ‘/Users/max/Documents/GitHub/music_grading_app/ios/Pods/WechatOpenSDK_Fuck/OpenSDK1.9.2/libWeChatSDK.a’ for architecture arm64

1. xcode12弃用了arm64,但是有些第三方还在使用

2. 解决方案

(1) 使用真机

(2)排除arm64体系

修改如下:在Excluded Architectures内添加arm64注意⚠️:打包或真机运行时需要去掉,否则会报错。

四、Execution failed for task ‘:app:compileFlutterBuildDebug’.

更新flutter版本

五、Execution failed for task ‘:app:compileDebugKotlin’.

1. 问题原因

kotlin版本不对应或不是最新版本。

2. 解决方案

(1) Android Studio—Preferences—Languages & Frameworks—Kotlin—更新到最新版
(2) 记住上一步的版本号,去android/build.gradle内修改buildscript
buildscript {
    ext.kotlin_version = '1.4.32' /// 此处修改成上一步的版本号
    repositories {
        google()
        jcenter()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:4.1.0'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

六、 GetX: BottomSheet跳转到同一页面时首次可以,第二次点击无效

1. 问题原因

因为使用GetX框架,在BottomSheet上使用Get.to方法跳转页面时,会默认为同一页面,默认会阻止多次此种操作。

2. 解决方案

只需在将preventDuplicates设置为false即可

Get.to(()=>Page(), preventDuplicates: false);

七、 安卓模式下fluwx,调起微信支付失败

1. 问题原因

debug模式下使用的签名是默认的,未在微信后台配置。改成和release相同的即可

2. 解决方案

只需在将android/app/build.gradle内修改如下

signingConfigs {
        release {
            keyAlias keystoreProperties['keyAlias']
            keyPassword keystoreProperties['keyPassword']
            storeFile file(keystoreProperties['storeFile'])
            storePassword keystoreProperties['storePassword']
        }
        /// 添加以下部分即可
        debug {
            keyAlias keystoreProperties['keyAlias']
            keyPassword keystoreProperties['keyPassword']
            storeFile file(keystoreProperties['storeFile'])
            storePassword keystoreProperties['storePassword']
        }
    }

八、Execution failed for task ‘:wakelock:compileDebugKotlin’.

执行flutter clean后操作

九、存储到本地的文件(图片、视频等文件),调用时找不到

1. IOS端

例如存储时地址为/var/mobile/Containers/Data/Application/加密乱码/Documents/camera/videos/REC_9D448AD8-D726-4F9A-AF7C-E672043B88DC.mp4

但是直接调用这个地址会报错,因为文中 **加密乱码**会随机变换,所以要path_provider重新调用项目地址进行拼接。

2. Android端

暂时无这种问题。

十、循环Map时,map.values.map和map.values.forEach的区别

1. Map.values.map

  • 具有惰性,只有它本身被迭代时,才会应用

  • 转换后的元素不会缓存

2. Map.values.forEach

  • 类似于for循环

十一、Container未设置color时,添加GestureDetector时无响应

1. 给Contianer添加color

2. GestureDetector修改behavior属性

  • deferToChild: 只有当前容器中的child被点击时才会响应点击事件**(默认)**。
  • opaque:点击整个区域都会响应点击事件,但是点击事件不可穿透向下传递,注释翻译:阻止视觉上位于其后方的目标接收事件。
  • translucent:同样是点击整个区域都会响应点击事件,和opaque的区别是点击事件是否可以向下传递,注释翻译:半透明目标既可以在其范围内接受事件,也可以允许视觉上位于其后方的目标接收事件。

你可能感兴趣的:(Flutter,#,Flutter小技巧,flutter,git)