【问题标题】:Unhandled Exception: 'package:flutter/src/widgets/framework.dart': Failed assertion: '_debugCurrentBuildTarget == context': is not true未处理的异常:'package:flutter/src/widgets/framework.dart':断言失败:'_debugCurrentBuildTarget == context':不正确
【发布时间】:2021-02-27 01:20:05
【问题描述】:

在运行我的应用程序后,我尝试在我的颤振应用程序中实现“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!

我的代码:

main.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(),
    );
  }
}

pages/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"))
        ],
      ),
    );
  }
}

components/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,
    );
  }
}

【问题讨论】:

    标签: android android-studio flutter dart visual-studio-code


    【解决方案1】:

    您可以在下面复制粘贴运行完整代码
    HomePage 中,您再次调用HomePage 会导致此错误
    您可以创建一个新的Page1 并将HomePage 更改为Page1
    代码sn-p

    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"));
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2021-11-05
      • 2021-04-12
      • 2021-01-16
      • 2021-08-07
      • 2021-07-24
      • 2020-03-01
      • 2022-06-27
      • 2021-02-05
      • 2020-01-21
      相关资源
      最近更新 更多