我开始研究 Flutter 并且一切正常,但它不读取 xml 文件这是 pubspec.yaml 部分:
flutter:
uses-material-design: true
assets:
- assets/
- assets/xml/strings.xml
Run Code Online (Sandbox Code Playgroud)
这是应该读取 xml 的部分:
void main(){
String file = "";
switch (type){
case TYPE_STRING:
file = 'assets/xml/strings.xml';
break;
}
readFileAsync(file);
}
void readFileAsync(String filePath) {
File file = new File(filePath);
Future<String> futureContent = file.readAsString();
futureContent.then((xmlString) => {
parseXml(xmlString)
});
}
Run Code Online (Sandbox Code Playgroud)
我得到的错误是
Unhandled Exception: FileSystemException: Cannot open file, path = 'assets/xml/strings.xml' (OS Error: No such file or directory, errno = 2)
Run Code Online (Sandbox Code Playgroud)
所以,在我看来,我设置的一切都正确,有什么问题?
用于rootBundle从应用程序包访问资源。
并且还要求WidgetsFlutterBinding.ensureInitialized()第一,如果你想使用rootBundle之前runApp的功能。
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
void main() {
WidgetsFlutterBinding.ensureInitialized();
String file = "";
switch (type) {
case TYPE_STRING:
file = 'assets/xml/strings.xml';
break;
}
readFileAsync(file);
}
Future<dynamic> readFileAsync(String filePath) async {
String xmlString = await rootBundle.loadString(filePath);
print(xmlString);
return parseXml(xmlString);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10663 次 |
| 最近记录: |