首页 > 解决方案 > 未处理的异常:'package:flutter/src/widgets/framework.dart':断言失败:'_debugCurrentBuildTarget == context':不正确

问题描述

在运行我的应用程序后,我尝试在我的颤振应用程序中实现“ bubble_bottom_bar ”,但我收到了这个我不知道的错误,并且在 Google 上我没有找到有用的东西。

错误信息:

E/flutter ( 4903): [ERROR:flutter/lib/ui/ui_dart_state.cc(177)] Unhandled Exception: 'package:flutter/src/widgets/framework.dart': Failed 
assertion: line 2624 pos 20: '_debugCurrentBuildTarget == context': is not true.
E/flutter ( 4903): #0      _AssertionError._doThrowNew (dart:core-patch/errors_patch.dart:46:39)
E/flutter ( 4903): #1      _AssertionError._throwNew (dart:core-patch/errors_patch.dart:36:5)
E/flutter ( 4903): #2      BuildOwner.buildScope.<anonymous closure> 
(package:flutter/src/widgets/framework.dart:2624:20)
E/flutter ( 4903): #3      BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2628:12)
E/flutter ( 4903): #4      RenderObjectToWidgetAdapter.attachToRenderTree (package:flutter/src/widgets/binding.dart:1086:13)
E/flutter ( 4903): #5      WidgetsBinding.attachRootWidget (package:flutter/src/widgets/binding.dart:927:7)
E/flutter ( 4903): #6      WidgetsBinding.scheduleAttachRootWidget.<anonymous closure> (package:flutter/src/widgets/binding.dart:908:7)   
E/flutter ( 4903): #7      _rootRun (dart:async/zone.dart:1182:47)
E/flutter ( 4903): #8      _CustomZone.run (dart:async/zone.dart:1093:19)
E/flutter ( 4903): #9      _CustomZone.runGuarded (dart:async/zone.dart:997:7)
E/flutter ( 4903): #10     _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:1037:23)
E/flutter ( 4903): #11     _rootRun (dart:async/zone.dart:1190:13)   
E/flutter ( 4903): #12     _CustomZone.run (dart:async/zone.dart:1093:19)
E/flutter ( 4903): #13     _CustomZone.bindCallback.<anonymous closure> (dart:async/zone.dart:1021:23)
E/flutter ( 4903): #14     Timer._createTimer.<anonymous closure> (dart:async-patch/timer_patch.dart:18:15)
timer_impl.dart:428:5)                                               r_impl.dart:397:19)
E/flutter ( 4903): #17     _RawReceivePortImpl._handleMessage (dart:itimer_impl.dart:428:5)solate-patch/isolate_patch.dart:168:12)                              solate-patch/isolate_patch.dart:168:12)
E/flutter ( 4903):
I/OpenGLRenderer( 4903): Davey! duration=11820ms; Flags=1, IntendedVsync=313138546400, Vsync=313138546400, Olync=313138546400, Vsync=313138546400, OldestInputEvent=92233720368547531800, AnimationStart=313140549500, Per75807, NewestInputEvent=0, HandleInputStart=313140531800, AnimationSt00, SyncStart=324319140500, IssueDrawComart=313140549500, PerformTraversalsStart=313140579500, DrawStart=3243 DequeueBufferDuration=486425700, QueueB14567900, SyncQueued=324315324600, SyncStart=324319140500, IssueDrawCommandsStart=324319822700, SwapBuffers=324452499100, FrameCompleted=3oing too much work on its main thread.24962429000, DequeueBufferDuration=486425700, QueueBufferDuration=971800, GpuCompleted=0,

我使用 VS-Code 作为编辑器,使用 Android Studio 作为 Android 模拟器。两者都是最新的!Flutter 和 Dart 也是最新的。我尝试使用 Android 手机而不是模拟器 -> 相同的错误。

颤振医生:

$ flutter doctor -v

[√] Flutter (Channel beta, 1.23.0-18.1.pre, on Microsoft Windows [Version
    10.0.18363.1198], locale de-DE)
    • Flutter version 1.23.0-18.1.pre at C:\src\sdk\flutter
    • Framework revision 198df796aa (4 weeks ago), 2020-10-15 12:04:33 -0700
    • Engine revision 1d12d82d9c
    • Dart version 2.11.0 (build 2.11.0-213.1.beta)

 
[√] Android toolchain - develop for Android devices (Android SDK version 30.0.1)        
    • Android SDK at C:\Users\marce\AppData\Local\Android\sdk
    • Platform android-30, build-tools 30.0.1
    • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)       
    • All Android licenses accepted.

[√] Android Studio (version 4.0)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin version 48.0.2
    • Dart plugin version 193.7361
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)       

[√] VS Code (version 1.51.0)
    • VS Code at C:\Users\marce\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.16.0

[√] Connected device (1 available)
    • sdk gphone x86 arm (mobile) • emulator-5554 • android-x86 • Android 11 (API 30)   
      (emulator)

• No issues found!

我的代码:

主要.dart

import 'package:flutter/material.dart';

import 'package:venora_tracker/pages/home.dart';
import 'package:venora_tracker/components/appScaffold.dart';

void main() => runApp(App());

class App extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return AppScaffold(
      home: HomePage(),
    );
  }
}

页面/home.dart


import 'package:flutter/material.dart';

//? COMPONENTS & LIB ITEMS
//? PACKAGES
import 'package:bubble_bottom_bar/bubble_bottom_bar.dart';
//? PAGES
import 'package:venora_tracker/pages/wallet.dart';
import 'package:venora_tracker/pages/eintraege.dart';
import 'package:venora_tracker/pages/konten.dart';

class HomePage extends StatefulWidget {
  @override
  _HomePageState createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {
  int currentIndex = 0;

  void changePage(int index) {
    setState(() {
      currentIndex = index;
    });
  }

  Widget callPage(int _selectedBar) {
    switch (_selectedBar) {
      case 0:
        return HomePage();
      case 1:
        return WalletPage();
      case 2:
        return EintraegePage();
      case 3:
        return KontenPage();
        break;
      default:
        return null;
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('MoneyTracker'),
      ),
      body: this.callPage(this.currentIndex),
      floatingActionButton: FloatingActionButton(
        onPressed: () {},
        child: Icon(Icons.add),
        backgroundColor: Colors.indigo,
      ),
      floatingActionButtonLocation: FloatingActionButtonLocation.endDocked,
      bottomNavigationBar: BubbleBottomBar(
        opacity: .2,
        currentIndex: currentIndex,
        onTap: changePage,
        borderRadius: BorderRadius.vertical(top: Radius.circular(16)),
        elevation: 8,
        fabLocation: BubbleBottomBarFabLocation.end, //new
        hasNotch: true, //new
        hasInk: true, //new, gives a cute ink effect
        inkColor: Colors.black12, //optional, uses theme color if not specified
        items: <BubbleBottomBarItem>[
          BubbleBottomBarItem(
              //Home
              backgroundColor: Colors.indigo,
              icon: Icon(
                Icons.home,
                color: Colors.black,
              ),
              activeIcon: Icon(
                Icons.home,
                color: Colors.indigo,
              ),
              title: Text("Start")),
          BubbleBottomBarItem(
              //Wallet
              backgroundColor: Colors.green[800],
              icon: Icon(
                Icons.account_balance_wallet,
                color: Colors.black,
              ),
              activeIcon: Icon(
                Icons.account_balance_wallet,
                color: Colors.green[800],
              ),
              title: Text("Wallet")),
          BubbleBottomBarItem(
              //Icon3
              backgroundColor: Colors.deepOrange,
              icon: Icon(
                Icons.credit_card,
                color: Colors.black,
              ),
              activeIcon: Icon(
                Icons.credit_card,
                color: Colors.deepOrange,
              ),
              title: Text("Konten")),
          BubbleBottomBarItem(
              //Icon 4
              backgroundColor: Colors.deepPurple,
              icon: Icon(
                Icons.menu,
                color: Colors.black,
              ),
              activeIcon: Icon(
                Icons.menu,
                color: Colors.deepPurple,
              ),
              title: Text("Einträge"))
        ],
      ),
    );
  }
}

组件/appSaffold.dart

import 'package:flutter/material.dart';

class AppScaffold extends StatelessWidget {
  AppScaffold({this.home});
  final Widget home;

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'MoneyTracker',
      debugShowCheckedModeBanner: false,
      theme: ThemeData(
        primarySwatch: Colors.indigo,
        primaryColor: Colors.indigo,
        secondaryHeaderColor: Colors.indigo,
        visualDensity: VisualDensity.adaptivePlatformDensity,
      ),
      home: home,
    );
  }
}

标签: androidandroid-studioflutterdartvisual-studio-code

解决方案


您可以在下面复制粘贴运行完整代码
HomePageHomePage再次调用时导致此错误
您可以创建一个新的Page1并更改HomePagePage1
代码片段

Widget callPage(int _selectedBar) {
    switch (_selectedBar) {
      case 0:
        return Page1();
...
class Page1 extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Center(child: Text("Page1"));
  }
}

工作演示

在此处输入图像描述

完整代码

import 'package:bubble_bottom_bar/bubble_bottom_bar.dart';
import 'package:flutter/material.dart';

void main() => runApp(App());

class App extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return AppScaffold(
      home: HomePage(),
    );
  }
}

class AppScaffold extends StatelessWidget {
  AppScaffold({this.home});
  final Widget home;

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'MoneyTracker',
      debugShowCheckedModeBanner: false,
      theme: ThemeData(
        primarySwatch: Colors.indigo,
        primaryColor: Colors.indigo,
        secondaryHeaderColor: Colors.indigo,
        visualDensity: VisualDensity.adaptivePlatformDensity,
      ),
      home: home,
    );
  }
}

class HomePage extends StatefulWidget {
  @override
  _HomePageState createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {
  int currentIndex = 0;

  void changePage(int index) {
    setState(() {
      currentIndex = index;
    });
  }

  Widget callPage(int _selectedBar) {
    switch (_selectedBar) {
      case 0:
        return Page1();
      case 1:
        return WalletPage();
      case 2:
        return EintraegePage();
      case 3:
        return KontenPage();
        break;
      default:
        return null;
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('MoneyTracker'),
      ),
      body: this.callPage(this.currentIndex),
      floatingActionButton: FloatingActionButton(
        onPressed: () {},
        child: Icon(Icons.add),
        backgroundColor: Colors.indigo,
      ),
      floatingActionButtonLocation: FloatingActionButtonLocation.endDocked,
      bottomNavigationBar: BubbleBottomBar(
        opacity: .2,
        currentIndex: currentIndex,
        onTap: changePage,
        borderRadius: BorderRadius.vertical(top: Radius.circular(16)),
        elevation: 8,
        fabLocation: BubbleBottomBarFabLocation.end, //new
        hasNotch: true, //new
        hasInk: true, //new, gives a cute ink effect
        inkColor: Colors.black12, //optional, uses theme color if not specified
        items: <BubbleBottomBarItem>[
          BubbleBottomBarItem(
              //Home
              backgroundColor: Colors.indigo,
              icon: Icon(
                Icons.home,
                color: Colors.black,
              ),
              activeIcon: Icon(
                Icons.home,
                color: Colors.indigo,
              ),
              title: Text("Start")),
          BubbleBottomBarItem(
              //Wallet
              backgroundColor: Colors.green[800],
              icon: Icon(
                Icons.account_balance_wallet,
                color: Colors.black,
              ),
              activeIcon: Icon(
                Icons.account_balance_wallet,
                color: Colors.green[800],
              ),
              title: Text("Wallet")),
          BubbleBottomBarItem(
              //Icon3
              backgroundColor: Colors.deepOrange,
              icon: Icon(
                Icons.credit_card,
                color: Colors.black,
              ),
              activeIcon: Icon(
                Icons.credit_card,
                color: Colors.deepOrange,
              ),
              title: Text("Konten")),
          BubbleBottomBarItem(
              //Icon 4
              backgroundColor: Colors.deepPurple,
              icon: Icon(
                Icons.menu,
                color: Colors.black,
              ),
              activeIcon: Icon(
                Icons.menu,
                color: Colors.deepPurple,
              ),
              title: Text("Einträge"))
        ],
      ),
    );
  }
}

class Page1 extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Center(child: Text("Page1"));
  }
}

class WalletPage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Center(child: Text("WalletPage"));
  }
}

class EintraegePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Center(child: Text("EintraegePage"));
  }
}

class KontenPage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Center(child: Text("KontenPage"));
  }
}

推荐阅读