我发现错误出现的时间点是在我安装完Mirai点歌插件 后,并且在系统变量中配置好ffmpeg_path(用于在qq中发送amr语音) 之后,将ffmpeg.exe拖到mcl的根目录里。——————此时运行mcl会有如上的占用error;
尝试删掉位于根目录下的ffmpeg.exe,再次运行mcl,仍然出现同样的error。
再次删除:将系统变量path中删除M:\mirai\ffmpeg\bin,此时再次运行mcl,点歌插件提示:
ecf5d29b-8176-4e0e-bf86-40be7e623950-image.png
并且没有以上的占用报错出现。问题完美解决(误)
于是乎,解决办法是不去使用此点歌插件的语音功能。
但是不知道是否有兼容的解决办法。
第一个错误
E/net.mamoe.mirai-api-http: kotlinx.coroutines.JobCancellationException: LazyStandaloneCoroutine is cancelling; job=LazyStandaloneCoroutine{Cancelling}@476fde05
kotlinx.coroutines.JobCancellationException: LazyStandaloneCoroutine is cancelling; job=LazyStandaloneCoroutine{Cancelling}@476fde05
Caused by: java.net.BindException: Address already in use: bind
at java.base/sun.nio.ch.Net.bind0(Native Method)
at java.base/sun.nio.ch.Net.bind(Net.java:552)
at java.base/sun.nio.ch.ServerSocketChannelImpl.netBind(ServerSocketChannelImpl.java:336)
at java.base/sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:294)
at java.base/sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:88)
at io.ktor.network.sockets.ConnectUtilsJvmKt.bind(ConnectUtilsJvm.kt:32)
at io.ktor.network.sockets.TcpSocketBuilder.bind(TcpSocketBuilder.kt:46)
at io.ktor.network.sockets.TcpSocketBuilder.bind(TcpSocketBuilder.kt:30)
at io.ktor.network.sockets.TcpSocketBuilder.bind$default(TcpSocketBuilder.kt:29)
at io.ktor.server.cio.backend.HttpServerKt$httpServer$acceptJob$1.invokeSuspend(HttpServer.kt:46)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665)**
第二个错误
E/MahKtorAdapter[http,ws]: java.net.BindException: Address already in use: bind
java.net.BindException: Address already in use: bind
at java.base/sun.nio.ch.Net.bind0(Native Method)
at java.base/sun.nio.ch.Net.bind(Net.java:552)
at java.base/sun.nio.ch.ServerSocketChannelImpl.netBind(ServerSocketChannelImpl.java:336)
at java.base/sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:294)
at java.base/sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:88)
at io.ktor.network.sockets.ConnectUtilsJvmKt.bind(ConnectUtilsJvm.kt:32)
at io.ktor.network.sockets.TcpSocketBuilder.bind(TcpSocketBuilder.kt:46)
at io.ktor.network.sockets.TcpSocketBuilder.bind(TcpSocketBuilder.kt:30)
at io.ktor.network.sockets.TcpSocketBuilder.bind$default(TcpSocketBuilder.kt:29)
at io.ktor.server.cio.backend.HttpServerKt$httpServer$acceptJob$1.invokeSuspend(HttpServer.kt:46)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665)