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

Flutter项目运行报错:找不到未创建的soru_bankasi.dart文件

Flutter项目运行时找不到未创建的soru_bankasi.dart文件问题

错误信息

Error: Error when reading 'lib/data/soru_bankasi.dart': No such file or directory

我并未在项目中创建soru_bankasi.dart文件,代码里也没有任何对该文件的引用。

文件结构

项目文件结构

项目代码

lib/main.dart

import 'package:flutter/material.dart';
import 'screens/ana_sayfa.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      title: 'History Quiz App',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: AnaSayfa(),
    );
  }
}

lib/screens/ana_sayfa.dart

import 'package:flutter/material.dart';
import 'test_sayfasi.dart'; // Importing the TestSayfasi widget

class AnaSayfa extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Home Page'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            Text(
              'Welcome!',
              style: TextStyle(fontSize: 24),
            ),
            SizedBox(height: 20),
            ElevatedButton(
              onPressed: () {
                Navigator.push(
                  context,
                  MaterialPageRoute(builder: (context) => TestSayfasi()),
                );
              },
              child: Text('Start Quiz'),
            ),
          ],
        ),
      ),
    );
  }
}

lib/screens/test_sayfasi.dart

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

class TestSayfasi extends StatelessWidget {
  final List<String> topics = [
    'Pre-Islamic Turkish History',
    'First Turkish-Islamic States',
    'Ottoman Empire: Foundation and Rise Periods',
    'Culture and Civilization in the Ottoman Empire',
    '17th Century Ottoman Empire (Stagnation Period)',
    '18th Century Ottoman Empire (Decline Period)',
    '19th Century Ottoman Empire (Collapse Period)',
    '20th Century Ottoman Empire',
    'War of Independence: Preparatory Period',
    'First Turkish Grand National Assembly',
    'War of Independence: Battle Period',
    'Ataturk’s Reforms',
    'Ataturk’s Principles',
    'Political Parties and Internal Politics',
    'Ataturk’s Foreign Policy',
    'Post-Ataturk Period',
    'Life and Personality of Ataturk',
  ];

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Topics'),
      ),
      body: ListView.builder(
        itemCount: topics.length,
        itemBuilder: (context, index) {
          return Padding(
            padding: const EdgeInsets.symmetric(vertical: 4.0, horizontal: 8.0),
            child: ElevatedButton(
              onPressed: () {
                Navigator.push(
                  context,
                  MaterialPageRoute(
                    builder: (context) => TestSecimSayfasi(topic: topics[index]),
                  ),
                );
              },
              child: Text(topics[index]),
            ),
          );
        },
      ),
    );
  }
}

lib/screens/test_secim_sayfasi.dart

import 'package:flutter/material.dart';

class TestSecimSayfasi extends StatelessWidget {
  final String topic;

  TestSecimSayfasi({required this.topic});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('$topic - Test Selection'),
      ),
      body: ListView.builder(
        itemCount: 10,
        itemBuilder: (context, index) {
          return Padding(
            padding: const EdgeInsets.symmetric(vertical: 4.0, horizontal: 8.0),
            child: ElevatedButton(
              onPressed: () {
                Navigator.push(
                  context,
                  MaterialPageRoute(
                    builder: (context) => TestDetailsPage(
                      topic: topic,
                      testNo: index + 1,
                    ),
                  ),
                );
              },
              child: Text('Test-${index + 1}'),
            ),
          );
        },
      ),
    );
  }
}

class TestDetailsPage extends StatelessWidget {
  final String topic;
  final int testNo;

  TestDetailsPage({required this.topic, required this.testNo});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('$topic - Test-$testNo'),
      ),
      body: Center(
        child: Text(
          'Content for $topic - Test-$testNo will be displayed here.',
          style: TextStyle(fontSize: 18),
          textAlign: TextAlign.center,
        ),
      ),
    );
  }
}

已尝试的操作

  • 搜索所有项目文件,未找到soru_bankasi.dart的任何引用
  • 使用VS Code的“在文件中查找”功能搜索soru_bankasi,无结果
  • 执行以下清理重建命令:
    flutter clean
    flutter pub get
    flutter run
    
  • 手动删除.dart_tool和build目录后重新运行项目

问题分析与解决方法

1. 深层缓存残留

常规的flutter clean可能没清理干净IDE或Flutter的深层缓存:

  • 完全关闭IDE(比如VS Code),重新打开后执行:
    flutter clean && flutter pub get && flutter run
    
  • 检查项目根目录下的.packages文件,若存在则打开搜索soru_bankasi,找到相关条目后删除整个.packages文件,再执行flutter pub get

2. 第三方依赖间接引用

排查pubspec.yaml中的依赖包,部分第三方库可能包含对该文件的引用:

  • 逐个注释pubspec.yaml中的依赖,每次注释后执行flutter pub get && flutter run,定位引发问题的依赖包
  • 执行flutter pub deps查看完整依赖树,搜索soru_bankasi相关的引用路径

3. 版本控制残留

若项目曾在Git历史中存在过该文件,可能有版本控制残留:

  • 确认.gitignore已包含.dart_tool、build等目录,然后执行:
    git clean -xfd
    
    注意:该命令会删除所有未跟踪文件,执行前备份重要文件
  • 重新拉取项目或执行flutter pub get后运行

4. IDE配置或SDK问题

  • 删除VS Code的.vscode目录下的settings.json和launch.json(先备份),重新配置运行选项
  • 升级Flutter SDK到最新稳定版:
    flutter upgrade
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 07:17:34