«Необработанное исключение: NoSuchMethodError» при вызове onTap () - PullRequest
0 голосов
/ 17 февраля 2020

Я новичок во флаттере и недавно начал работать над моим первым проектом флаттера.

Идея состоит в том, что когда пользователь касается кнопки / изображения, он должен воспроизводить звук.

Я использую 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): 

I Я не уверен, почему я получаю эту ошибку.

1 Ответ

0 голосов
/ 20 февраля 2020

Итак, мне удалось устранить ошибку, импортировав несколько новых пакетов и удалив старый пакет.

Импортировано PositionTapDetector и заменено Gesturedetector им.

Изменено * От 1007 * до Audio_Cache

Но я думаю, что основной проблемой был метод playLocal(), который воспроизводит аудио из расположения устройств, а не из папки ресурсов.

Итак, окончательный код -

child: PositionedTapDetector(
            onTap: (center) {
                  AudioCache player = AudioCache();
                  player.play('audio/movie_1.mp3');
              },
            child: Image(
              image: AssetImage('assets/images/PngItem_4931119.png'),
            ),
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...