Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter &引用;未处理的异常:NoSuchMethodError“;调用onTap()时_Flutter_Dart_Nosuchmethoderror - Fatal编程技术网

Flutter &引用;未处理的异常:NoSuchMethodError“;调用onTap()时

Flutter &引用;未处理的异常:NoSuchMethodError“;调用onTap()时,flutter,dart,nosuchmethoderror,Flutter,Dart,Nosuchmethoderror,我对颤振还不熟悉,最近开始了我的第一个颤振项目 这个想法是,当用户触摸按钮/图像时,它应该播放声音 我正在使用android studio创建应用程序。 我导入了一个名为 帮助播放音频 当我运行代码时,会生成应用程序并显示图像,但当我点击图像时,会出现无法解决的错误: Unhandled Exception: NoSuchMethodError: The getter 'position' was called on null 代码如下: MaterialApp( home: Scaff

我对颤振还不熟悉,最近开始了我的第一个颤振项目

这个想法是,当用户触摸按钮/图像时,它应该播放声音

我正在使用android studio创建应用程序。 我导入了一个名为 帮助播放音频

当我运行代码时,会生成应用程序并显示图像,但当我点击图像时,会出现无法解决的错误:

Unhandled Exception: NoSuchMethodError: The getter 'position' was called on null
代码如下:

MaterialApp(
   home: Scaffold(
     backgroundColor: Colors.black,
     body: Center(
       child: GestureDetector(
         onTap: () {
           AudioPlayer audioPlayer = AudioPlayer();
           audioPlayer.setVolume(1.0);

           playLocal() async {
             int result = await audioPlayer.play(
                 'C:/Users/JaganathPrathap/AndroidStudioProjects/bruh/assetsproj/audio/movie_1.mp3',
                 isLocal: true);
           }
         },
         child: Image(
           image: AssetImage('assetsproj/images/PngItem_4931119.png'),
         ),
       ),
     ),
   ),
 ),
这就是错误:

E/flutter (11532): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: NoSuchMethodError: The getter 'position' was called on null.
E/flutter (11532): Receiver: null
E/flutter (11532): Tried calling: position
E/flutter (11532): #0      Object.noSuchMethod (dart:core-patch/object_patch.dart:53:5)
E/flutter (11532): #1      TapGestureRecognizer.handleTapDown (package:flutter/src/gestures/tap.dart:456:28)
E/flutter (11532): #2      BaseTapGestureRecognizer._checkDown (package:flutter/src/gestures/tap.dart:256:5)
E/flutter (11532): #3      BaseTapGestureRecognizer.didExceedDeadline (package:flutter/src/gestures/tap.dart:227:5)
E/flutter (11532): #4      PrimaryPointerGestureRecognizer.didExceedDeadlineWithEvent (package:flutter/src/gestures/recognizer.dart:493:5)
E/flutter (11532): #5      PrimaryPointerGestureRecognizer.addAllowedPointer.<anonymous closure> (package:flutter/src/gestures/recognizer.dart:446:40)
E/flutter (11532): #6      _rootRun (dart:async/zone.dart:1122:38)
E/flutter (11532): #7      _CustomZone.run (dart:async/zone.dart:1023:19)
E/flutter (11532): #8      _CustomZone.runGuarded (dart:async/zone.dart:925:7)
E/flutter (11532): #9      _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:965:23)
E/flutter (11532): #10     _rootRun (dart:async/zone.dart:1126:13)
E/flutter (11532): #11     _CustomZone.run (dart:async/zone.dart:1023:19)
E/flutter (11532): #12     _CustomZone.bindCallback.<anonymous closure> (dart:async/zone.dart:949:23)
E/flutter (11532): #13     Timer._createTimer.<anonymous closure> (dart:async-patch/timer_patch.dart:23:15)
E/flutter (11532): #14     _Timer._runTimers (dart:isolate-patch/timer_impl.dart:384:19)
E/flutter (11532): #15     _Timer._handleMessage (dart:isolate-patch/timer_impl.dart:418:5)
E/flutter (11532): #16     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:174:12)
E/flutter (11532): 

E/flatter(11532):[ERROR:flatter/lib/ui/ui\u dart\u state.cc(157)]未处理的异常:NoSuchMethodError:对null调用了getter“position”。
E/颤振(11532):接收器:空
E/颤振(11532):尝试呼叫:位置
E/颤振(11532):#0 Object.noSuchMethod(dart:core patch/Object_patch.dart:53:5)
E/flatter(11532):#1个TapGestureRecognitor.handleTapDown(包:flatter/src/signatures/tap.dart:456:28)
E/flatter(11532):#2 BaseTapgestureRecognitor._检查(包:flatter/src/signatures/tap.dart:256:5)
E/flatter(11532):#3 BaseTapgestureRecognitor.dideExcepedheadline(包:flatter/src/signatures/tap.dart:227:5)
E/flatter(11532):#4 PrimaryPointerEstureRecognizer.dideExcepedDeadlineWithEvent(包:flatter/src/手势/识别器。dart:493:5)
E/颤振(11532):#5个主要指针传感器识别器。添加允许的指针。(软件包:颤振/src/手势/识别器。dart:446:40)
E/flatter(11532):#6 rootRun(dart:async/zone.dart:1122:38)
E/flatter(11532):#7_CustomZone.run(dart:async/zone.dart:1023:19)
E/flatter(11532):#8 _CustomZone.runguard(dart:async/zone.dart:925:7)
E/颤振(11532):#9_CustomZone.bindCallbackguared。(省道:异步/分区。省道:965:23)
E/flatter(11532):#10 rootRun(dart:async/zone.dart:1126:13)
E/flatter(11532):#11 _CustomZone.run(dart:async/zone.dart:1023:19)
E/颤振(11532):#12 _CustomZone.bindCallback。(dart:async/zone.dart:949:23)
E/颤振(11532):13定时器。(dart:async patch/timer_patch.dart:23:15)
E/颤振(11532):#14 _计时器。_运行计时器(dart:isolate patch/Timer_impl.dart:384:19)
E/颤振(11532):#15 _定时器。_handleMessage(dart:隔离补丁/定时器_impact.dart:418:5)
E/颤振(11532):#16(RawReceivePortImpl.)处理消息(省道:隔离补丁/隔离补丁。省道:174:12)
E/颤振(11532):

我不确定为什么会出现此错误。

因此我通过导入一些新包并删除旧包来解决此错误

导入了
PositionTapDetector
,并用它替换了
Gesturedetector

将音频播放器更改为音频缓存

但是我认为主要的问题是
playLocal()
方法,它从设备位置而不是资产文件夹播放音频

最后的代码是

child: PositionedTapDetector(
            onTap: (center) {
                  AudioCache player = AudioCache();
                  player.play('audio/movie_1.mp3');
              },
            child: Image(
              image: AssetImage('assets/images/PngItem_4931119.png'),
            ),

因此,我通过导入几个新包并删除旧包,成功地解决了这个错误

导入了
PositionTapDetector
,并用它替换了
Gesturedetector

将音频播放器更改为音频缓存

但是我认为主要的问题是
playLocal()
方法,它从设备位置而不是资产文件夹播放音频

最后的代码是

child: PositionedTapDetector(
            onTap: (center) {
                  AudioCache player = AudioCache();
                  player.play('audio/movie_1.mp3');
              },
            child: Image(
              image: AssetImage('assets/images/PngItem_4931119.png'),
            ),

是一种方法吗?请尝试将其移出并查看。我已导入音频包并指定了其git页面。我使用上述方法播放本地资源中的音频。您是否需要将mp3作为资源添加,而不是指向其在磁盘上的位置?您不能直接添加文件夹的链接。外接程序项目,然后在pubspec.yaml文件中指定该文件我确实在pubspec.yaml中将它们添加为资产,并尝试将路径更改为本地路径,但仍然收到相同的错误是
playLocal()
是一种方法吗?请尝试将其移出并查看。我已导入音频包并指定了其git页面。我使用上述方法播放本地资源中的音频。您是否需要将mp3作为资源添加,而不是指向其在磁盘上的位置?您不能直接添加文件夹的链接。加载项项目,然后在pubspec.yaml文件中指定该文件我确实在pubspec.yaml中将它们添加为资产,并尝试将路径更改为本地路径,但仍然收到相同的错误