我尝试使用flutter build web
在发布模式下构建flutter web应用程序(也尝试过flutter build web --no-sound-null-safety
)。当我这样做时,我得到下面的错误。
D:\saves\reset_password>flutter build web
Building without sound null safety
For more information see https://dart.dev/null-safety/unsound-null-safety
Target dart2js failed: Exception: Warning: The 'dart2js' entrypoint script is deprecated, please use 'dart compile js' instead.
.dart_tool/flutter_build/1916f9367c0e6ad6c929bd88cf5227e5/web_plugin_registrant.dart:14:38:
Error: Null safety features are disabled for this library.
void registerPlugins([final Registrar? pluginRegistrar]) {
^
Error: Compilation failed.
Compiling lib\main.dart for the Web... 44.9s
Exception: Failed to compile application for the Web.
当我使用flutter run
直接在调试模式下运行它时,它工作正常。我最近升级到flutter 3. 0和im使用Android studio。下面是我的flutter doctor
(我知道android工具丢失了。因为我是为web构建的,所以我没有太注意它)
D:\saves\reset_password>flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel master, 3.1.0-0.0.pre.966, on Microsoft Windows [Version 10.0.19044.1706], locale en-IN)
[!] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
X cmdline-tools component is missing
Run `path/to/sdkmanager --install "cmdline-tools;latest"`
See https://developer.android.com/studio/command-line for more details.
X Android license status unknown.
Run `flutter doctor --android-licenses` to accept the SDK licenses.
See https://flutter.dev/docs/get-started/install/windows#android-setup for more details.
[√] Chrome - develop for the web
[√] Visual Studio - develop for Windows (Visual Studio Community 2019 16.8.5)
[√] Android Studio (version 4.1)
[√] VS Code (version 1.66.2)
[√] Connected device (3 available)
[√] HTTP Host Availability
! Doctor found issues in 1 category.
6条答案
按热度按时间hgb9j2n61#
对我来说,解决方案是在cmd/终端上启动
flutter clean && flutter pub get
。zynd9foi2#
flutter build web
在我的本地工作,但不在我的服务器上,sudo reboot
后,它再次工作。上面的sugestet答案对我不起作用...zvms9eto3#
我也遇到过类似的问题,它是在基于Ubuntu的服务器上。
在我的情况下,我有:
目标dart 2 js失败:异常:警告:“dart 2 js”入口点脚本已弃用,请改用“dart compile js”。flutter/.pub-cache/hosted/pub.dartlang.org/firebase_auth_web-3.3.19/lib/firebase_auth_web.dart:402:16:错误:方法“FirebaseAuthWeb.verifyPhoneNumber”的命名参数比覆盖方法“FirebaseAuthPlatform. verifyPhoneNumber”的命名参数少...
我发现一个firebase_auth_web依赖项有一个过时的版本,并且没有在项目中使用。因此我删除了这个依赖项。之后问题就消失了。
gblwokeq4#
此问题的修复程序现在可在稳定通道3.3.0上获得。这是由于3.0版本之一中的更改将null安全功能添加到Web插件注册程序中。任何没有null安全的Web项目都将受到影响。
slwdgvem5#
删除
/flutter/bin/cache
文件夹。运行
flutter doctor
。然后,运行
flutter clean
、flutter pub get
和flutter build web
。ybzsozfc6#
我自己修复了这个错误。以下是我所做的:
我发现
pubspec.yaml
文件中有一些当前未使用的依赖项。我导航到我的.dart_tool\flutter_build\cb8031cdd1bfbcb95122aae4ad9a63d5\web_plugin_registrant.dart
,发现这些依赖项正在registerPlugins()
中引用。我清除了
registerPlugins()
中显示的所有未使用的依赖项,并执行了以下步骤:还有VIOLA!错误消失了,我把我的文件放在
build\web
文件夹里了。