Flutter开发Bug总结

本篇文章总结一下在Flutter开发过程中遇到的BUG及其解决方案,不定期更新。

环境介绍

  • 系统:Windows 10 家庭中文版
  • 编译器:VS code
  • Android版本:Android8.1.0
  • Android SDK Tools: 26.1.1

flutter RangeError (index): Invalid value: Valid value range is empty: 0

  • 问题描述:在页面类中定义了一个List,然后在 initState() 中通过 add() 对其赋值,没有语法错误,但是在运行过程中报错。

  • 代码详情:

class _RootPage extends State<RootPage> {

int _currentIndex = 0;
List<Widget> pages = List();
@override
void initState() {
pages
..add(HomePage())
..add(ShopPage());
super.initState();
}

@override
Widget build(BuildContext context) {
// print(pages[0]);
return Scaffold(
body: pages[_currentIndex],

...

);
}
}
  • 错误详情:看报错是因为List中没有值,然后使用的时候就会出现引用错误。
I/flutter ( 3569): ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
I/flutter ( 3569): The following RangeError was thrown building BottomAppBarNav(dirty, state:
I/flutter ( 3569): BottomAppBArNavState#0f3a1):
I/flutter ( 3569): RangeError (index): Invalid value: Valid value range is empty: 0
  • 解决方案:在项目根目录运行此命令:flutter clean,然后再次运行项目,正常运行。

  • 答案来源:GITHUB

  • 问题扩展:依据此issues,如果出现错误RangeError: RangeError (index): Invalid value: Only valid value is 0: 1,一样可以用此方法解决。

文章作者: JaCo Wu
文章链接: https://jacokwu.cn/blog/2019/07/31/Flutter开发Bug总结/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 JaCo Wu的博客