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

如何修复Flutter中‘Undefined name 'Tflite'’错误?

解决Flutter中Tflite未定义的错误

你遇到的Undefined name 'Tflite'错误,核心原因是导入的包和代码调用的API不匹配:你导入的是tflite_flutter包,但代码里用的是旧版tflite包的Tflite.loadModel方法,这两个包的API完全不一样,所以找不到这个类。

解决方案步骤:

  • 替换模型加载代码
    tflite_flutter不需要调用loadModel,而是通过Interpreter类直接加载模型。修改main函数里的模型加载部分:
    保留原有的tflite_flutter导入,替换掉原来的await Tflite.loadModel(...)代码:

    // 替换原来的Tflite.loadModel代码块
    late Interpreter interpreter;
    try {
      // 从assets加载模型
      interpreter = await Interpreter.fromAsset('assets/model.tflite');
      print('模型加载成功');
    } catch (e) {
      print('模型加载失败: $e');
    }
    

    如果需要读取标签文件,可添加以下方法并调用:

    // 读取标签文件的工具方法
    Future<List<String>> loadLabels() async {
      final labelContent = await rootBundle.loadString('assets/labels.txt');
      return labelContent.split('\n').where((label) => label.isNotEmpty).toList();
    }
    
    // 在main函数中调用
    var labels = await loadLabels();
    
  • 确认资源配置
    检查pubspec.yaml里是否正确声明了模型和标签文件:

    flutter:
      assets:
        - assets/model.tflite
        - assets/labels.txt
    
  • 验证Android配置
    针对之前处理过的Android V2兼容问题,确保android/app/build.gradle配置符合要求:

    android {
        defaultConfig {
            minSdkVersion 21 // tflite_flutter要求最低SDK版本为21
        }
    
        buildFeatures {
            viewBinding true // 若启用了Android V2视图绑定需保留
        }
    }
    

完成以上修改后重新运行项目,即可解决Tflite未定义的错误。

内容的提问来源于stack exchange,提问作者Shiven Khurana

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 06:55:00