You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter食谱App添加JSON数据后出现Lost connection to device问题求助

解决方案步骤
  • 校验JSON数据合法性
    新增的菜品JSON很可能存在语法错误(比如未闭合的引号、多余逗号、类型不匹配),这会导致解析失败触发崩溃。可以用JSON校验工具检查文件,同时在Dart解析代码中添加try-catch捕获错误:

    try {
      final recipeData = json.decode(await rootBundle.loadString('assets/your_new_recipe.json'));
    } catch (e, stackTrace) {
      print('JSON解析失败: $e');
      print('堆栈追踪: $stackTrace');
    }
    
  • 排查内存溢出问题
    大量新增数据可能导致内存占用过高:

    • 不要一次性加载所有分类的JSON,改为进入对应页面时再加载该分类的数据;
    • 检查新增菜品的图片资源,若图片尺寸过大,使用Image组件的cacheWidth/cacheHeight参数压缩,或提前压缩本地图片;
    • 列表渲染改用ListView.builder(懒加载)替代一次性渲染所有item的ListView。
  • 查看设备崩溃日志
    通过设备日志定位具体崩溃原因:

    • Android:运行命令 adb logcat *:E 查看错误级别的日志,重点关注OutOfMemoryError、JSONException等关键词;
    • iOS:打开Xcode的控制台,查看App崩溃时的堆栈信息。
  • 调整Gradle配置(Android)
    确保Gradle配置适配大内存场景:
    在android/app/build.gradle中修改:

    android {
        defaultConfig {
            multiDexEnabled true
        }
        dexOptions {
            javaMaxHeapSize "4g"
        }
    }
    
    dependencies {
        implementation 'com.android.support:multidex:1.0.3'
    }
    

    同时确认compileSdkVersion和targetSdkVersion设置为33或更高版本。

  • 清理项目缓存
    执行以下命令清理缓存后重新运行:

    flutter clean
    flutter pub get
    

    重启IDE和测试设备,排除缓存导致的异常。

内容的提问来源于stack exchange,提问作者Mamoon Shahzad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 05:12:15