最近我更新到了 flutter 2.5 和最新的 androids studio,并尝试将我的 flutter 项目编译到 android 设备。Android studio 向我抛出以下错误。如果我flutter run在终端中写入,则编译到 Android 设备没有问题。
猜测这肯定和android studio有关。我尝试降级到较早的 android studio 版本,但问题仍然存在。
我不确定这是什么插件,它看起来不像我在项目中使用的任何插件。
编辑:如果我将 flutter 从 2.5 降级到 2.0,我的项目将再次编译。所以问题出在flutter 2.5之内
Launching lib/main.dart on Android SDK built for x86 in debug mode...
Running Gradle task 'assembleDebug'...
../plugins/flutter/.pub-cache/hosted/pub.dartlang.org/photo_view-0.11.1/lib/src/core/photo_view_gesture_detector.dart:106:29: Error: The argument type 'PointerEvent' can't be assigned to the parameter type 'PointerDownEvent'.
- 'PointerEvent' is from 'package:flutter/src/gestures/events.dart' ('../plugins/flutter/packages/flutter/lib/src/gestures/events.dart').
- 'PointerDownEvent' is from 'package:flutter/src/gestures/events.dart' ('../plugins/flutter/packages/flutter/lib/src/gestures/events.dart').
super.addAllowedPointer(event);
Run Code Online (Sandbox Code Playgroud) 每当我向代码库添加新测试时,我在运行它们时都会遇到上述错误消息。
package:flutter_tools/src/test/flutter_tester_device.dart 224:73 FlutterTesterTestDevice.finished
===== asynchronous gap ===========================
dart:async/future.dart Future.any.onValue
Failed to load "app/test/club/club_section_test.dart": Shell subprocess ended cleanly. Did main() call exit()?
Run Code Online (Sandbox Code Playgroud) 我的 Admob 小部件有问题。\n我正在为包含 Admob 横幅小部件的 flutter 应用程序开发一项新功能。\n但是当我 setState 另一个小部件的值时,Admob 小部件会出错。
\n我在用 :google_mobile_ads: ^0.11.0+1
横幅的构建方式如下:
\n @override\n void initState() {\n setState(() {\n _adBanner = createBannerAd();\n });\n super.initState();\n }\n\n @override\n void dispose() {\n _adBanner.dispose();\n super.dispose();\n }\nRun Code Online (Sandbox Code Playgroud)\n小部件的显示如下:
\n Container(\n margin: EdgeInsets.only(bottom: myPercent(2, screenHeight)),\n child: FutureBuilder(\n future: _adBanner.load(),\n builder: (context, snapshot) {\n if (snapshot.connectionState == ConnectionState.done) {\n return Container(\n margin: EdgeInsets.only(bottom: 3),\n width: myPercent(95, screenWidth),\n height: myPercent(6, screenHeight),\n alignment: Alignment.center,\n child: AdWidget(\n ad: _adBanner,\n ),\n );\n }\n return Container();\n …Run Code Online (Sandbox Code Playgroud) 在我的颤动项目中,当我在模拟器中启动项目时,一切正常,未来的构建器仅触发一次,但是当我进行热重载时,FutureBuilder 会触发两次,这会导致错误,知道如何解决这个问题吗?
Future frameFuture() async {
var future1 = await AuthService.getUserDataFromFirestore();
var future2 = await GeoService.getPosition();
return [future1, future2];
}
@override
void initState() {
user = FirebaseAuth.instance.currentUser!;
super.initState();
}
@override
Widget build(BuildContext context) {
return FutureBuilder(
future: frameFuture(),
builder: (context, snap) {
if (snap.connectionState == ConnectionState.done && snap.hasData) return HomePage();
else return Container(
color: Colors.black,
child: Center(
child: spinKit,
),
);
}
);
}
Run Code Online (Sandbox Code Playgroud) 测试在调试模式下通过,但在配置文件或发布模式下未通过。enterText即使输入具有焦点,它在调用时也不会输入文本。在调试模式下,它可以毫无问题地输入文本。
testing integration-testing dart flutter flutter-integration-test