标签: flutter

Flutter 错误:没有名为“keyboardDismissBehavior”的命名参数

在我运行 fluttergrade 命令之前,flutter 项目在我的 Android 设备上运行良好。然后如果不更改任何代码,该项目就无法运行。这是错误消息:

在 RMX1971 上以调试模式启动 lib/main.dart...运行 Gradle 任务 'assembleDebug'... ../../env/flutter/.pub-cache/hosted/pub.flutter-io.cn/pull_to_refresh- 1.6.4/lib/src/smart_refresher.dart:434:9:错误:没有名为“keyboardDismissBehavior”的命名参数。KeyboardDismissBehavior:^^^^^^^^^^^^^^^^^^^^^^^^ ../../env/flutter/packages/flutter/lib/src/widgets/scroll_view.dart:588 :9: 上下文:找到该候选者,但参数不匹配。const CustomScrollView({ ^^^^^^^^^^^^^^^^^

失败:构建失败并出现异常。

  • 其中:脚本'/Users/lgk/env/flutter/packages/flutter_tools/gradle/flutter.gradle'行:907

  • 出了什么问题:任务“:app:compileFlutterBuildDebug”执行失败。

进程'命令'/Users/lgk/env/flutter/bin/flutter''以非零退出值1完成

  • 尝试:使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 选项运行以获得更多日志输出。使用 --scan 运行以获得完整的见解。

  • 在https://help.gradle.org获取更多帮助

14 秒内构建失败异常:Gradle 任务 assembleDebug 失败,退出代码为 1

flutter

5
推荐指数
1
解决办法
1488
查看次数

Revenuecat Flutter中如何给予套餐订阅折扣?

我正在使用 Revenuecat 进行扑动。在套餐订阅期间,我想在购买时给用户一定的折扣。有什么办法可以让客户端在订阅套餐时给予折扣吗?

in-app-purchase flutter revenuecat

5
推荐指数
1
解决办法
2079
查看次数

Flutter:隔离(计算)内存泄漏

每次在 Flutter 应用程序中调用compute()时,我都会看到内存泄漏,据我所知,这基本上只是生成隔离的一种便捷方法。我的应用程序内存占用量不断增加,并且在 GC 之后永远不会下降。\n我已将代码简化为仅调用一个空函数 - 并且该问题仍然可以重现:

\n
  // run my _encodeJpeg in isolate\n  await compute(_encodeJpeg, null);\n\n\n  Future<void> _encodeJpeg(_JpegEncodeParams params) async {\n    // I\'ve made this function empty just to see if the memory leak is still reproducible - yes it is!\n  }\n
Run Code Online (Sandbox Code Playgroud)\n

请注意,如果我不调用compute() - 我的应用程序中没有内存泄漏。所以肯定是compute()导致了这个问题。

\n

然后我创建了一个新的入门 Flutter 应用程序(默认带有按钮和计数器) - 并以相同的方式从该应用程序调用compute(),它工作正常!没有内存泄漏。很奇怪吧?!

\n

我的应用程序中的某些内容会导致compute() 上的内存泄漏,而应用程序本身(如果我不调用compute)没有任何内存泄漏。我使用一些以前版本的 Flutter 创建了我的应用程序,但现在我使用最新的 Flutter 编译它(见下文)。

\n

我的应用程序中是否有某些内容需要手动更新才能使compute()按预期工作?

\n

更新:我使用计算机( https://pub.dev/packages/computer )等库没有看到这个问题:

\n
final computer = Computer();\nawait computer.turnOn(workersCount: 1);\nawait computer.compute<void, _JpegEncodeParams>(_encodeTempJpeg, param: ...);\ncomputer.turnOff();\n
Run Code Online (Sandbox Code Playgroud)\n

颤医生:

\n …

memory-leaks dart-isolates flutter

5
推荐指数
1
解决办法
2126
查看次数

用于从导航器推送或弹出路由的上下文必须是导航器小部件的后代小部件的上下文

我正在尝试从第一个屏幕导航到另一个屏幕,所以基本上,我正在检查用户是否已登录,并根据该情况导航或不导航到下一个屏幕,但我收到以下错误尝试时的上下文

这是我的代码

Future _AuthenticateUser(BuildContext context){
  FirebaseAuth.instance
      .authStateChanges()
      .listen((event) {
      if(event == null){
      // User is null
     } else {

        // here I navigate to the next screen
        Navigator.push(context,
            MaterialPageRoute(builder: (context) => new MainScreen()));

    }
  });
}
Run Code Online (Sandbox Code Playgroud)

我首先调用代码来检查用户登录状态

 @override
  void didChangeDependencies() {
    _AuthenticateUser(context);
    super.didChangeDependencies();

  }
Run Code Online (Sandbox Code Playgroud)

这是我收到的错误

The context used to push or pop routes from the Navigator must be that of a widget that is a descendant of a Navigator widget.
Run Code Online (Sandbox Code Playgroud)

flutter

5
推荐指数
1
解决办法
1737
查看次数

在flutter中动态显示数据表布局中的JSON数据

我正在 flutter 中创建动态数据表视图,其中列标题和行值是动态添加的。数据是一个 Json 响应,标题是一个字符串数组,要在行中显示的数据也是一个字符串数组。目标是在表视图中显示数据,而不需要任何硬编码值。\n这就是我尝试过的方法就是显示数据。

\n
                     return ListView.builder(\n                         shrinkWrap: true,\n                         scrollDirection: Axis.vertical,\n                         itemCount: snapshot.data.dataList.length,\n                         itemBuilder: (BuildContext context, int index){\n                           return SingleChildScrollView(\n                             child: DataTable(\n                               columns: (snapshot.data.headerList[index] as List).map((item) =>\n                               DataColumn(\n                                   label:(\n                                       List.generate(item.length,(index){\n                                         return Text(item[index].toString());\n                                       })\n                                   )\n                               )).toList(),\n                               rows: (snapshot.data.dataList[index].dataList as List).map((item) =>\n                               \n                               DataRow(\n                                 \n                                   cells:<DataCell>[\n                                     DataCell(\n                                         List.generate(item.length,(index){\n                                           return Text(item[index].toString());\n                                         })\n                                     )\n                                    ])).toList(),\n                             ),\n
Run Code Online (Sandbox Code Playgroud)\n

这是 JSON 响应

\n
 "DayEnd": {\n        "ColumnWidths": "40\xc2\xb4168\xc2\xb496\xc2\xb496\xc2\xb4108\xc2\xb4156",\n        "Headers": "SL.>\xc2\xb4Customer< \xc2\xb4Balance Qty>\xc2\xb4Amount>\xc2\xb4Oldest / Recent ",\n        "FieldSeparator": "\xc2\xb4",\n        "DataList": [\n            {\n                "Data": "1. \xc2\xb4ABD \xc2\xb414 / 14.60\xc2\xb411,090\xc2\xb4313 …
Run Code Online (Sandbox Code Playgroud)

datatable listview arraylist dart flutter

5
推荐指数
1
解决办法
8081
查看次数

Flutter [firebase_messaging] IOS 构建错误

我在使用 Firebase Messaging ( https://pub.dev/packages/firebase_messaging )时遇到问题。将其添加到项目后,我无法在 IOS 中构建。

我试过:

flutter clean
flutter precache    
pod deintegrate
pod setup
pod install
Run Code Online (Sandbox Code Playgroud)

尝试:删除 Podfile.lock

编辑/删除 WorkspaceSettings.xcsettings

将构建系统更改为 Legacy

我在实际项目中也遇到同样的问题。我创建了空白项目,构建 ios 并在模拟器上运行。添加 FirebaseMessaging 后出现此构建错误。尝试了我发短信的方法,但对我不起作用。错误:

In file included from /Users/mac/.pub-cache/hosted/pub.dartlang.org/firebase_messaging-7.0.3/ios/Classes/FLTFirebaseMessagingPlugin.m:9:
    /Users/mac/Desktop/Flutter Apps/iyifiyatt/ios/Pods/Headers/Public/Firebase/Firebase.h:81:10: warning: "FirebaseAnalytics.framework is not
    included in your target. Please add the FirebaseAnalytics dependency to your project to ensure Messaging works as intended." [-W#warnings]
            #warning "FirebaseAnalytics.framework is not included in your target. Please add the \
             ^
    /Users/mac/.pub-cache/hosted/pub.dartlang.org/firebase_messaging-7.0.3/ios/Classes/FLTFirebaseMessagingPlugin.m:190:43: error: expected a
    type
    - (void)applicationReceivedRemoteMessage:(FIRMessagingRemoteMessage …
Run Code Online (Sandbox Code Playgroud)

ios firebase swift flutter firebase-cloud-messaging

5
推荐指数
1
解决办法
3483
查看次数

如何创建一个在所有屏幕上都保持活动状态的小部件?就像 Spotify 的迷你播放器一样

我目前正在构建一个播客应用程序,我想要实现的是类似于 Spotify 中的迷你播放器的东西。

当用户点击播客并开始收听时,我想打开一个迷你播放器并使其在所有页面上活跃。

我首先想到的是使用 Overlay 小部件或为所有页面使用自定义导航器并将该导航器放入堆栈中。我想知道以前是否有人实施过类似的事情,或者解决这个问题的最佳方法是什么。

Spotify 迷你播放器

flutter

5
推荐指数
1
解决办法
1280
查看次数

Flutter AutofillHints oneTimeCode 不起作用

我想捕获 OTP 短信代码,但它在 IOS 上不起作用。我需要显示键盘上方的代码。

我的代码块是;

TextField(
 controller: controller,
 autofillHints: const <String>[AutofillHints.oneTimeCode],
 keyboardType: TextInputType.number,
 onChanged: onChanged,
),
Run Code Online (Sandbox Code Playgroud)

textfield one-time-password dart flutter

5
推荐指数
1
解决办法
2830
查看次数

将 flutter 模块公开为 IOS 框架会导致“无法找到“Frameworks/App.framework/flutter_assets”的资产路径”

Failed to find assets path for "Frameworks/App.framework/flutter_assets当我尝试通过框架将 Flutter 项目公开到另一个 IOS 项目(通过框架添加到应用程序)时,我收到了消息。

我创建了一个 Flutter 项目,现在我想将其公开为 IOS 的本机框架。我们希望与其他公司分享我们的项目,以便他们可以将其集成到他们的 IOS 应用程序中。

我遵循了https://flutter.dev/docs/development/add-to-app/ios/project-setup上描述的文档,并使用了选项 C。这将为我们的 Flutter 模块创建一个 XCFramework 并将其集成到我们的本机中iOS 框架将有一个 API 来与 flutter 项目配合使用。通过这种方式,我们的 IOS 框架可以被视为一种伞式框架,但也具有公开的 API。

所以我创建的是:

  • 颤振模块
  • 一个IOS框架
  • 一个IOS项目

./flutterw build ios-framework --cocoapods --xcframework --no-universal --output=../WhiteLabelIOSFrameWork/Flutter --verbose我使用IOS 框架构建了 flutter 模块。我将库添加到框架中,并为框架创建了一个 codespec 文件,仅使用 Flutter 作为依赖项。之后我向项目添加了一个 Podfile 并将框架添加为依赖项。

所有这些都有效(我只需要升级到 Flutter 1.24.X 即可使用此修复程序https://github.com/flutter/flutter/pull/69736)。但是当我启动 Flutter 引擎时,它无法找到 flutter_assets ( Failed to find assets path for "Frameworks/App.framework/flutter_assets)。

我尝试将 ios 框架直接构建到我们的 IOS 项目中,并跳过框架之间的中间部分,然后它似乎可以工作。所以我认为它找不到 flutter_assets …

ios cocoapods flutter

5
推荐指数
1
解决办法
483
查看次数

当我热重新加载或关闭应用程序时,它不会让用户保持登录状态

您好,我花了几天时间试图弄清楚为什么当我关闭应用程序时我的用户会丢失应用程序上的“会话”。我如何让他们保持登录状态或者什么可能导致这种情况?

\n

我正在使用 android studio 上的模拟器选项在我的 google Pixel 5 上运行该应用程序。

\n

yaml 文件:

\n
firebase_core: ^0.4.0+9\nfirebase_auth: ^0.14.0+9\ncloud_firestore: ^0.13.6\nfirebase_storage: 3.1.6\nfirebase_messaging: 6.0.16\nfirebase_crashlytics: 0.1.4+1\n
Run Code Online (Sandbox Code Playgroud)\n

这是我在日志中可以看到的内容(没有多大帮助):

\n
\n

D/FlutterLocationService(32338):与位置服务解除绑定。\nD/FlutterLocationService(32338):正在销毁服务。\nD/FlutterLocationService(32338):创建服务。\nD/FlutterLocationService(32338):绑定到位置服务。

\n
\n

颤振医生-v:

\n
\n

(base) darrendupreez@Darrens-MacBook-Pro unavine_app % flutter doctor\nv [\xe2\x9c\x93] Flutter(频道开发,1.26.0-12.0.pre,在 macOS 11.1 20C69 darwin-x64 上,区域设置 en-CA) \n\xe2\x80\xa2 Flutter 版本 1.26.0-12.0.pre 位于 /Applications/flutter\n\xe2\x80\xa2 框架修订版 a706cd2112(2 周前),2021-01-14 18:20:26 - 0500\n\xe2\x80\xa2 引擎修订版 effb529ece\n\xe2\x80\xa2 Dart 版本 2.12.0(内部版本 2.12.0-224.0.dev)

\n

[\xe2\x9c\x93] Android 工具链 - 为 Android 设备开发(Android SDK\n版本 30.0.3)\n\xe2\x80\xa2 Android SDK,位于 /Users/darrendupreez/Library/Android/sdk\n\xe2\ x80\xa2 平台 android-30,构建工具 30.0.3\n\xe2\x80\xa2 …

dart flutter

5
推荐指数
1
解决办法
3151
查看次数