我正在尝试为我的扑腾App编写测试。我正在编写测试的函数返回一个Future,因此我正在使用await。
但是只要使用任何await语句,我就会得到MissingPluginException错误。
我尝试更改依赖版本,但它没有帮助。无法在GitHub上找到有关此问题的Flutter Issues或StackOverFlow。
import 'package:flutter_test/flutter_test.dart';
import '../home.dart';
void main() {
test('checkAppVersion', () async {
expect(await checkAppVersionTest(true), true);
});
}
String currentVersionString = await GetVersion.projectVersion;
Version currentVersion = Version.parse(currentVersionString);
Future<bool> checkAppVersionTest([bool test, Version latestVersion]) async {
...
if (currentVersion < latestVersion) {
updateRequired = true;
}
...
return updateRequired
}
预计工作正常。
得到错误:
MissingPluginException(在通道plugins.flutter.io/package_info上找不到方法getAll的实现) 包:flutter / src / services / platform_channel.dart 300:7 MethodChannel.invokeMethod =====异步间隙========================== = dart:async _AsyncAwaitCompleter.completeError包:flutter / src / services / platform_channel.dart MethodChannel.invokeMethod =====异步间隙=========================== dart:async _asyncThenWrapperHelper包:flutter / src / services / platform_channel 。镖 MethodChannel.invokeMethod包:package_info / package_info.dart 38:17 PackageInfo.fromPlatform
看起来你只需要安装你的pod。
打开终端并导航到flutter目录。
CD通过cd iOS/
进入iOS目录,然后运行pod install
现在你应该可以正常运行项目了。
只需终止应用程序并热启动应用程序。当您添加依赖项时,需要特定于平台的代码才能通过平台通道运行。您必须通过终止当前的应用程序来重新启动应用程序。