Он успешно запускается, если я изменю эту строку кода [конечный путь = join(documentsDirectory.path, «item5.db»);] на item6 или что-то еще

#android #json #api #flutter #async-await

#Android #json #API #трепетание #асинхронный-ожидание

Вопрос:

Этот код имеет неустойчивый характер. В редакторе кода он не показывает никакой ошибки, но когда я запускаю код, появляется неприятное сообщение об ошибке.

 import 'package:sqflite/sqflite.dart';
import 'package:path_provider/path_provider.dart';
import 'dart:io';
import 'package:path/path.dart';
import 'dart:async';
import '../models/item_model.dart';
import 'repository.dart';

class NewsDbProvider implements Source, Cache {
  Database db;

  NewsDbProvider() {
    init();
  }

  Future<List<int>> fetchTopIds() {
    return null;
  }

  void init() async {
    Directory documentsDirectory = await getApplicationDocumentsDirectory();
    **final path = join(documentsDirectory.path, "item5.db");**
    db = await openDatabase(
      path,
      version: 1,
      onCreate: (Database newDb, int version) {
        newDb.execute("""
      CREATE TABLE Items
      (
        id INTEGER PRIMARY KEY,
        type TEXT,
        by TEXT,
        time INTEGER,
        text TEXT,
        parent INTEGER,
        kids BLOB,
        dead INTEGER,
        deleted INTEGER,
        url TEXT,
        score INTEGER,
        title TEXT,
        descendants INREGER
      )
        """);
      },
    );
  }

  Future<ItemModel> fetchItem(int id) async {
    final maps = await db.query(
      "Items",
      columns: null,
      where: "id=?",
      whereArgs: [id],
    );
    if (maps.length > 0) {
      return ItemModel.fromDb(maps.first);
    }
    return null;
  }

  Future<int> addItem(ItemModel item) {
    return db.insert(
      "Items",
      item.toMap(),
      conflictAlgorithm: ConflictAlgorithm.ignore,
    );
  }
}

final newsDbProvider = NewsDbProvider();
  

Если я изменю имя item5 на что-либо другое, что я еще не использовал, код будет успешно работать.

Вот сообщение об ошибке терминала.

 **E/flutter ( 6340): [ERROR:flutter/lib/ui/ui_dart_state.cc(166)] Unhandled Exception: type 'int' is not a subtype of type 'bool'
E/flutter ( 6340): #0      new ItemModel.fromDb (package:news/src/models/item_model.dart:34:17)
E/flutter ( 6340): #1      NewsDbProvider.fetchItem 
                           (package:news/src/resources/news_db_provider.dart:57:24)
E/flutter ( 6340):          <asynchronous suspension>
E/flutter ( 6340): #2      Repository.fetchItem (package:news/src/resources/repository.dart:24:27)
E/flutter ( 6340): #3      StoriesBloc._itemsTransformer.<anonymous closure> 
                            (package:news/src/blocs/stories_bloc.dart:28:33)
E/flutter ( 6340): #4      _ScanStreamSink.add (package:rxdart/src/transformers/scan.dart:13:24)
E/flutter ( 6340): #5      _SinkTransformerStreamSubscription._handleData 
                            (dart:async/stream_transformers.dart:121:24)
E/flutter ( 6340): #6      _rootRunUnary (dart:async/zone.dart:1198:47)
E/flutter ( 6340): #7      _CustomZone.runUnary (dart:async/zone.dart:1100:19)
E/flutter ( 6340): #8      _CustomZone.runUnaryGuarded (dart:async/zone.dart:1005:7)
E/flutter ( 6340): #9      _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:357:11)
E/flutter ( 6340): #10     _DelayedData.perform (dart:async/stream_impl.dart:611:14)
E/flutter ( 6340): #11     _StreamImplEvents.handleNext (dart:async/stream_impl.dart:730:11)
E/flutter ( 6340): #12     _PendingEvents.schedule.<anonymous closure> 
                            (dart:async/stream_impl.dart:687:7)
E/flutter ( 6340): #13     _rootRun (dart:async/zone.dart:1182:47)
E/flutter ( 6340): #14     _CustomZone.run (dart:async/zone.dart:1093:19)
E/flutter ( 6340): #15     _CustomZone.runGuarded (dart:async/zone.dart:997:7)
E/flutter ( 6340): #16     _CustomZone.bindCallbackGuarded.<anonymous closure> 
                           (dart:async/zone.dart:1037:23)
E/flutter ( 6340): #17     _rootRun (dart:async/zone.dart:1190:13)
E/flutter ( 6340): #18     _CustomZone.run (dart:async/zone.dart:1093:19)
E/flutter ( 6340): #19     _CustomZone.runGuarded (dart:async/zone.dart:997:7)
E/flutter ( 6340): #20     _CustomZone.bindCallbackGuarded.<anonymous closure> 
                            (dart:async/zone.dart:1037:23)
E/flutter ( 6340): #21     _microtaskLoop (dart:async/schedule_microtask.dart:41:21)
E/flutter ( 6340): #22     _startMicrotaskLoop (dart:async/schedule_microtask.dart:50:5)**
  

При просмотре такого большого сообщения об ошибке я в замешательстве. Пожалуйста, помогите.