gpt4 book ai didi

android - Flutter 应用程序中的 Kotlin 导致崩溃

转载 作者:IT王子 更新时间:2023-10-29 07:18:03 24 4
gpt4 key购买 nike

自上次 flutter 更新以来,当我尝试使用使用 Kotlin 的媒体播放器插件时出现了问题。

当您点击按钮并假设播放音频文件时,它会导致应用程序崩溃。

fun play(url: String) {
player.reset()
channel.invokeMethod("onPosition", 0.0)
player.setDataSource(url)
player.prepareAsync()
channel.invokeMethod("onIsLoading", null)
task?.cancel()
task = object : TimerTask() {
override fun run() {
if (player.isPlaying) {
session.setPlaybackState(PlaybackStateCompat.Builder()
.setState(PlaybackStateCompat.STATE_PLAYING, player.currentPosition.toLong(), 1f)
.build())
channel.invokeMethod("onPosition", player.currentPosition.toDouble() / player.duration.toDouble())
}
}
}
timer.schedule(task, 0, 100)
}

有人建议我添加这个。

activity.runOnUiThread(java.lang.Runnable {
channel.invokeMethod(...)
})

但是如果我这样做了

Unresolved Reference: activity

这是错误信息。

java.lang.RuntimeException: Methods marked with @UiThread must be executed on the main thread. Current thread: Timer-0
at io.flutter.embedding.engine.FlutterJNI.ensureRunningOnMainThread(FlutterJNI.java:605)
at io.flutter.embedding.engine.FlutterJNI.dispatchPlatformMessage(FlutterJNI.java:515)
at io.flutter.embedding.engine.dart.DartMessenger.send(DartMessenger.java:76)
at io.flutter.embedding.engine.dart.DartExecutor.send(DartExecutor.java:166)
at io.flutter.view.FlutterNativeView.send(FlutterNativeView.java:155)
at io.flutter.plugin.common.MethodChannel.invokeMethod(MethodChannel.java:98)
at io.flutter.plugin.common.MethodChannel.invokeMethod(MethodChannel.java:84)
at live.exit.musicplayer.MusicPlayer$play$1.run(MusicPlayer.kt:49)
at java.util.TimerThread.mainLoop(Timer.java:562)
at java.util.TimerThread.run(Timer.java:512)

我有点茫然,这应该是播放音频。

我对 Kotlin 一无所知。

最佳答案

我认为您正在使用 ragotrebor 音乐播放器插件 ( https://gitlab.com/ragotrebor )。查看他们的历史记录,大约一个月前进行了一次合并,应该可以解决此问题。

只需更新到最新版本的插件,您就可以开始了!

背景

这与 flutter 的更改有关,以修复导致 FlutterJNI(Java Native Interface)在主线程之外执行某些方法时间歇性崩溃的错误。 Flutter 被更改为在所有情况下都抛出异常,以避免这种间歇性崩溃并强制开发人员在 UI 线程上正确运行方法。不幸的是,这导致许多现有插件崩溃,开发人员需要更新他们的源代码。

引用链接

关于android - Flutter 应用程序中的 Kotlin 导致崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56696173/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com