Flutter TextField 导致 NullPointerException
Flutter TextField Causing NullPointerException
知道为什么下面 Flutter 代码中的 TextField
会导致显示 NullPointerException
吗?
代码:
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: TextField(),
),
);
}
}
异常:
W/System.err(13600): java.lang.NullPointerException: Attempt to invoke virtual method 'int android.content.ClipData.getItemCount()' on a null object reference
W/System.err(13600): at android.os.Parcel.readException(Parcel.java:1626)
W/System.err(13600): at android.os.Parcel.readException(Parcel.java:1573)
W/System.err(13600): at android.content.IClipboard$Stub$Proxy.getPrimaryClip(IClipboard.java:197)
W/System.err(13600): at android.content.ClipboardManager.getPrimaryClip(ClipboardManager.java:247)
W/System.err(13600): at io.flutter.plugin.platform.PlatformPlugin.getClipboardData(PlatformPlugin.java:274)
W/System.err(13600): at io.flutter.plugin.platform.PlatformPlugin.access0(PlatformPlugin.java:24)
W/System.err(13600): at io.flutter.plugin.platform.PlatformPlugin.getClipboardData(PlatformPlugin.java:81)
W/System.err(13600): at io.flutter.embedding.engine.systemchannels.PlatformChannel.onMethodCall(PlatformChannel.java:141)
W/System.err(13600): at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:230)
W/System.err(13600): at io.flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(DartMessenger.java:85)
W/System.err(13600): at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java:692)
W/System.err(13600): at android.os.MessageQueue.nativePollOnce(Native Method)
W/System.err(13600): at android.os.MessageQueue.next(MessageQueue.java:323)
W/System.err(13600): at android.os.Looper.loop(Looper.java:143)
W/System.err(13600): at android.app.ActivityThread.main(ActivityThread.java:7224)
W/System.err(13600): at java.lang.reflect.Method.invoke(Native Method)
W/System.err(13600): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
W/System.err(13600): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
您应该为 Textfield 和 textformfield 使用有状态的小部件。可能这就是导致错误的原因。
知道为什么下面 Flutter 代码中的 TextField
会导致显示 NullPointerException
吗?
代码:
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: TextField(),
),
);
}
}
异常:
W/System.err(13600): java.lang.NullPointerException: Attempt to invoke virtual method 'int android.content.ClipData.getItemCount()' on a null object reference
W/System.err(13600): at android.os.Parcel.readException(Parcel.java:1626)
W/System.err(13600): at android.os.Parcel.readException(Parcel.java:1573)
W/System.err(13600): at android.content.IClipboard$Stub$Proxy.getPrimaryClip(IClipboard.java:197)
W/System.err(13600): at android.content.ClipboardManager.getPrimaryClip(ClipboardManager.java:247)
W/System.err(13600): at io.flutter.plugin.platform.PlatformPlugin.getClipboardData(PlatformPlugin.java:274)
W/System.err(13600): at io.flutter.plugin.platform.PlatformPlugin.access0(PlatformPlugin.java:24)
W/System.err(13600): at io.flutter.plugin.platform.PlatformPlugin.getClipboardData(PlatformPlugin.java:81)
W/System.err(13600): at io.flutter.embedding.engine.systemchannels.PlatformChannel.onMethodCall(PlatformChannel.java:141)
W/System.err(13600): at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:230)
W/System.err(13600): at io.flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(DartMessenger.java:85)
W/System.err(13600): at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java:692)
W/System.err(13600): at android.os.MessageQueue.nativePollOnce(Native Method)
W/System.err(13600): at android.os.MessageQueue.next(MessageQueue.java:323)
W/System.err(13600): at android.os.Looper.loop(Looper.java:143)
W/System.err(13600): at android.app.ActivityThread.main(ActivityThread.java:7224)
W/System.err(13600): at java.lang.reflect.Method.invoke(Native Method)
W/System.err(13600): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
W/System.err(13600): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
您应该为 Textfield 和 textformfield 使用有状态的小部件。可能这就是导致错误的原因。