[英]Dart Null-Safety - Range Error when executing dart migrate to upgrade to new null safety
I'm having problems upgrading a custom package to null safety and am not finding any solutions or even the same problem when searching on here and any other platform.我在将自定义包升级到空安全时遇到问题,并且在此处和任何其他平台上搜索时没有找到任何解决方案,甚至没有找到相同的问题。
When upgrading a custom package for Flutter 2.0 null-safety I'm using dart migrate
as the guide proposes, but am getting a compiler Error.在为 Flutter 2.0 空安全升级自定义包时,我按照指南的建议使用了
dart migrate
,但出现编译器错误。
But the error does not specify where it occurs nor is the errors description any help.但是错误没有指定它发生的位置,错误描述也没有任何帮助。 I looked through the entire package to find any Array/List or inclusive range error, without any success.
我查看了整个包以找到任何数组/列表或包含范围错误,但没有任何成功。
I'm running out of ideas to fix this error and complete the upgrade to null-safety.我没有任何想法来修复此错误并完成对空安全的升级。 Does someone have an idea what I can try to fix this error?
有人知道我可以尝试修复此错误吗?
Error message :错误信息:
dart migrate
Migrating file_name
See https://dart.dev/go/null-safety-migration for a migration guide.
Note: more than one project found; migrating the top-level project.
Analyzing project...
[--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------]No analysis issues found.
Generating migration suggestions...
[--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------]
Compiling instrumentation information...
[--------------------| ]RangeError (index): Invalid value: Not in inclusive range 0..12: 13
#0 List.[] (dart:core-patch/array.dart:268:52)
#1 BestPracticesVerifier._targetKindsFor (package:analyzer/src/error/best_practices_verifier.dart:1582:38)
#2 BestPracticesVerifier.visitAnnotation (package:analyzer/src/error/best_practices_verifier.dart:250:17)
#3 AnnotationImpl.accept (package:analyzer/src/dart/ast/ast.dart:280:49)
#4 NodeListImpl.accept (package:analyzer/src/dart/ast/ast.dart:7611:20)
#5 AnnotatedNodeImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:148:17)
#6 ClassDeclarationImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:1559:11)
#7 RecursiveAstVisitor.visitClassDeclaration (package:analyzer/dart/ast/visitor.dart:707:10)
#8 BestPracticesVerifier.visitClassDeclaration (package:analyzer/src/error/best_practices_verifier.dart:320:13)
#9 ClassDeclarationImpl.accept (package:analyzer/src/dart/ast/ast.dart:1536:49)
#10 NodeListImpl.accept (package:analyzer/src/dart/ast/ast.dart:7611:20)
#11 CompilationUnitImpl.visitChildren (package:analyzer/src/dart/ast/ast.dart:2141:21)
#12 RecursiveAstVisitor.visitCompilationUnit (package:analyzer/dart/ast/visitor.dart:731:10)
#13 CompilationUnitImpl.accept (package:analyzer/src/dart/ast/ast.dart:2134:49)
#14 LibraryAnalyzer._computeHints (package:analyzer/src/dart/analysis/library_analyzer.dart:281:10)
#15 LibraryAnalyzer.analyzeSync.<anonymous closure> (package:analyzer/src/dart/analysis/library_analyzer.dart:167:9)
#16 _LinkedHashMapMixin.forEach (dart:collection-patch/compact_hash.dart:397:8)
#17 LibraryAnalyzer.analyzeSync (package:analyzer/src/dart/analysis/library_analyzer.dart:166:13)
#18 LibraryAnalyzer.analyze (package:analyzer/src/dart/analysis/library_analyzer.dart:107:12)
#19 AnalysisDriver._computeResolvedLibrary2.<anonymous closure> (package:analyzer/src/dart/analysis/driver.dart:1416:65)
#20 PerformanceLog.run (package:analyzer/src/dart/analysis/performance_logger.dart:32:15)
#21 AnalysisDriver._computeResolvedLibrary2 (package:analyzer/src/dart/analysis/driver.dart:1402:20)
#22 AnalysisDriver._computeResolvedLibrary.<anonymous closure> (package:analyzer/src/dart/analysis/driver.dart:1395:15)
#23 _rootRun (dart:async/zone.dart:1354:13)
#24 _CustomZone.run (dart:async/zone.dart:1258:19)
#25 _runZoned (dart:async/zone.dart:1788:10)
#26 runZoned (dart:async/zone.dart:1710:10)
#27 NullSafetyUnderstandingFlag.enableNullSafetyTypes (package:analyzer/dart/element/null_safety_understanding_flag.dart:42:12)
#28 AnalysisDriver._computeResolvedLibrary (package:analyzer/src/dart/analysis/driver.dart:1394:40)
#29 AnalysisDriver.performWork (package:analyzer/src/dart/analysis/driver.dart:964:22)
#30 AnalysisDriverScheduler._run (package:analyzer/src/dart/analysis/driver.dart:2018:24)
<asynchronous suspension>
This appears to be a bug in the Dart SDK itself.这似乎是 Dart SDK 本身的一个错误。 This is tracked in dart-lang/sdk#46183 and was fixed in this commit .
这在dart-lang/sdk#46183 中进行了跟踪,并在此提交中得到了修复。
Steps to try on your end:试用步骤:
flutter upgrade
to be sure you're on the latest release.flutter upgrade
以确保您使用的是最新版本。beta
channel to get a more bleeding-edge SDK in order to run the migration tool, then switch back to the stable
channel once you're done.beta
通道以获得更前沿的 SDK 以运行迁移工具,然后在完成后切换回stable
通道。 You can do this by running flutter channel beta
, then re-running the migration, then flutter channel stable
to switch back.flutter channel beta
,然后重新运行迁移,然后flutter channel stable
切换回来。I had the same issue, it is fixed in beta channel as stated in the cbracken's answer.我遇到了同样的问题,如 cbracken 的回答中所述,它已在 beta 频道中修复。
Also, in my case I had second Dart SDK (2.12) installed outside Flutter, so the issue appeared to be unresolved.另外,就我而言,我在 Flutter 之外安装了第二个 Dart SDK (2.12),所以问题似乎没有解决。
Make sure you are running dart migrate
using dart included in your Flutter SDK Flutter/bin
folder.确保您正在使用 Flutter SDK
Flutter/bin
文件夹中包含的dart migrate
运行dart migrate
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.