Swift Bundle.main.resourcePath在我的flatter插件中返回nil,之前工作正常
我制作了一个测试颤振应用程序,它使用了我制作的一个插件,该插件仅检索.app中resources文件夹的路径,并将其返回到我的dart代码中 这在使用插件生成的示例项目中完全可以正常工作,并且以前在我的应用程序中也使用过。在此之后,我有一段时间没有使用这个插件,它也没有使用过,直到最近我才真正使用它,所以再次将它包含在我的代码中。现在这个插件似乎不适用于我添加到的任何项目,即使是新制作的项目 我的插件由以下dart代码组成:Swift Bundle.main.resourcePath在我的flatter插件中返回nil,之前工作正常,swift,flutter,flutter-plugin,.app,Swift,Flutter,Flutter Plugin,.app,我制作了一个测试颤振应用程序,它使用了我制作的一个插件,该插件仅检索.app中resources文件夹的路径,并将其返回到我的dart代码中 这在使用插件生成的示例项目中完全可以正常工作,并且以前在我的应用程序中也使用过。在此之后,我有一段时间没有使用这个插件,它也没有使用过,直到最近我才真正使用它,所以再次将它包含在我的代码中。现在这个插件似乎不适用于我添加到的任何项目,即使是新制作的项目 我的插件由以下dart代码组成: import 'dart:async'; import 'packa
import 'dart:async';
import 'package:flutter/services.dart';
class MacBundleUtils {
static const MethodChannel _channel =
const MethodChannel('mac_bundle_utils');
static Future<String?> get getResourcesDir async {
final String? resDir = await _channel.invokeMethod('getResourcesDir');
return resDir;
}
}
然后,我尝试检索此路径并使用以下一行将其打印到控制台:
print(await MacBundleUtils.getResourcesDir);
但是,这将返回以下错误:
Unhandled Exception: Null check operator used on a null value
我在这里做错了什么
谢谢。在发布此问题后不久,我就找到了解决方案。 我试图过早地访问Bundle.main,因为我的代码位于void main()中。 在使用initState()加载后将代码移动到执行位置后,如下所示: 它没有问题
Unhandled Exception: Null check operator used on a null value
@override
void initState() { //for linux app, tells user if permissions aren't correct
super.initState();
WidgetsBinding.instance!.addPostFrameCallback((_) async {
print(await MacBundleUtils.getResourcesDir);
});
}