X-dea / flutter_vpn

Plugin to access VPN service for Flutter | Flutter 的 VPN 插件
GNU Lesser General Public License v3.0
350 stars 126 forks source link

Init exception thrown on prepare() #42

Closed JSBmanD closed 4 years ago

JSBmanD commented 4 years ago

I'm getting an exception on calling prepare in first Stateless widget in the application. ios 13.3, emulator iphone 8 (I know that emulators aren't supported but it shouldn't be any exceptions on init like this).

[VERBOSE-2:ui_dart_state.cc(157)] Unhandled Exception: type '_Type' is not a subtype of type 'FutureOr<Null>'
#0      FlutterVpn.prepare (package:flutter_vpn/flutter_vpn.dart:75:30)
#1      VPN.build (package:vpn/app.dart:17:16)
#2      StatelessElement.build (package:flutter/src/widgets/framework.dart:4291:28)
#3      ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4223:15)
#4      Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
#5      ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
#6      ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
#7      Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
#8      Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
#9      SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5445:14)
#10     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
#11   <…>
[VERBOSE-2:shell.cc(199)] Dart Error: Unhandled exception:
type '_Type' is not a subtype of type 'FutureOr<Null>'
#0      FlutterVpn.prepare (package:flutter_vpn/flutter_vpn.dart:75:30)
#1      VPN.build (package:vpn/app.dart:17:16)
#2      StatelessElement.build (package:flutter/src/widgets/framework.dart:4291:28)
#3      ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4223:15)
#4      Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
#5      BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2432:33)
#6      WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:773:20)
#7      RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:283:5)
#8      SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1102:15)
#9      SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1041:9)
#10     SchedulerBinding.scheduleWarmUpFrame.<anonymous<…>
ctrysbita commented 4 years ago

Please don't try to prepare on iOS. Only do it on Android.

JSBmanD commented 4 years ago

Please don't try to prepare on iOS. Only do it on Android.

Something wrong was on ios. I removed prepare but it for some reason was throwing an error even with your check in code.