NoneFlutter : NoSuchMethodError во время отладки с точками останова

В настоящее время я играю с Flame, небольшим 2D игровым движком на основе флаттера. Мой код содержит довольно странный гейзенбаг: он отлично работает, если вы запускаете его через run или же debug, Но если вы установите точку останова, она выдаст ошибку

Unhandled exception:
NoSuchMethodError: The getter 'cls' was called on null.

Хотя я не думаю, что это связано с пламенем, я не смог воспроизвести проблему только с флаттером. Так что я включаю минимальную версию своего пламенного кода. Он просто окрашивает экран телефона в серый цвет фона:

main.dart:

import 'package:flutter/material.dart';
import 'package:temp/game.dart';

void main(){
  MyGame game = MyGame(); // error thrown here
  runApp(game.widget);
}

game.dart:

import 'package:flame/game.dart';
import 'dart:ui';

class MyGame extends Game{
  Size screenSize;

  @override
  void render(Canvas canvas) {
    Rect screenRect = Rect.fromLTWH(0, 0, screenSize.width, screenSize.height);
    Paint screenPaint = Paint();
    screenPaint.color = Color.fromARGB(255, 100, 100, 100);

    canvas.drawRect(screenRect, screenPaint);
  }

  @override
  void update(double t) {
  }

  @override
  void resize(Size size) {
    super.resize(size);
    screenSize = size;
  }
}

Если вы хотите запустить это, вы также должны добавить пламя в ваш pubspec:

dependencies:
  flutter:
    sdk: flutter

  # The following adds the Cupertino Icons font to your application.
  # Use with the CupertinoIcons class for iOS style icons.
  cupertino_icons: ^0.1.2
  flame: ^0.10.2

Моя ошибка возникает каждый раз, когда я устанавливаю точку останова в методе рендеринга MyGame и начать отладку.

0 ответов

Я не могу воспроизвести это на flame: ^0.22.0 так что вы можете просто перейти на эту версию, и она должна работать нормально.

Другие вопросы по тегам