无法从资产读取文件?

问题描述

在我的应用中,有一个按钮可以将文件(以我的情况为txt)复制到本地下载文件夹。我什至要求电话许可,并且可以使用。但是当我从txt文件中读取时,错误提示

FileSystemException:无法打开文件,路径='assets / readme.txt'(OS 错误:没有这样的文件或目录,errno = 2)

import 'package:flutter/material.dart';
import 'package:permission_handler/permission_handler.dart';
import 'dart:io';
import "package:path_provider/path_provider.dart";
 
void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
int a;
  @override
  Widget build(BuildContext context) {
    
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text("What up"),),body: Center(
          child: RaisedButton(
            onPressed: () async {
              await Permission.storage.request();
              if (PermissionStatus == PermissionStatus.granted) {
                print("permission granted");
              }
              if (PermissionStatus == PermissionStatus.denied) {
                print('permission denied');
              }
             var path = "assets/readme.txt";
             a = await readCounter();
             print(a);
            },child: Text("Press me"),);
  }
}


Future<int> readCounter() async {
  try {
    final file = File("assets/readme.txt");

    // Read the file.
    String contents = await file.readAsString();

    return int.parse(contents);
  } catch (e) {
    // If encountering an error,return 0.
    print(e);
  }
}

我将此代码添加到android> app> src> main> AndroidMainfest.xml

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

我还将资产文件夹添加到pubspec.yaml

flutter:

  # The following line ensures that the Material Icons font is
  # included with your application,so that you can use the icons in
  # the material Icons class.
  uses-material-design: true

  # To add assets to your application,add an assets section,like this:
  assets:
    - assets/

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)