[Bug] App crashes when watching Bilibili videos
Checklist
- [x] I make sure that the issue is NOT a duplicate of pinned issues
- [x] I make sure I am using the LATEST version - check here
- [x] I understand that issues with limited impact, such as those occurring on specific devices or under specific network conditions, will not be fixed
- [x] I have attached the error report in the issue
Describe the bug
Okay, now even watching videos causes it to crash! I can find any video and it crashes! Watching Bilibili videos keeps crashing; I just find any video, start watching, and it crashes immediately! Could Bilibili's search interface display a duration option?Of course, as long as I watch videos, whether I randomly open videos from the history, playlist, or search interface, it will crash, it will quit, and it won't allow me to watch!
Frequency
Always (100% of the time)
Device
Android 12;Redmi Note12T Pro
Steps to reproduce the bug
The app crashes when I try to watch a video on the Bilibili search page.
Additional context
{"os":"Linux Android 12 - 31","device":"Xiaomi 22041216C (xaga)","app_version":"5.0.0-beta1 (2000)","timestamp":1761992206317,"language":"zh_CN","timezone":"Asia/Shanghai (UTC+8:00)","task":"UNKNOWN","request":null,"stacktrace":"java.lang.NullPointerException\n\tat project.pipepipe.app.viewmodel.VideoDetailViewModel$loadDanmaku$$inlined$updateCurrentEntry$1.invoke(VideoDetailViewModel.kt:559)\n\tat project.pipepipe.app.viewmodel.VideoDetailViewModel$loadDanmaku$$inlined$updateCurrentEntry$1.invoke(VideoDetailViewModel.kt:34)\n\tat project.pipepipe.app.viewmodel.BaseViewModel.setState(BaseViewModel.kt:232)\n\tat project.pipepipe.app.viewmodel.VideoDetailViewModel.loadDanmaku(VideoDetailViewModel.kt:34)\n\tat project.pipepipe.app.viewmodel.VideoDetailViewModel$loadDanmaku$1.invokeSuspend(VideoDetailViewModel.kt:0)\n\tat kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:34)\n\tat kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100)\n\tat kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:586)\n\tat kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:829)\n\tat kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:717)\n\tat kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:704)\n\tSuppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@c1b9355, Dispatchers.Default]\n"}
can you test beta2? we just released it and it solves most of things
https://github.com/InfinityLoop1308/PipePipe/releases/tag/v5.0.0-beta2
if issue persists please let me know which video you are watching
if issue persists please let me know which video you are watching
Sorry, I didn't see that you updated to PipePipe-5.0.0-beta2-release.apk! I just updated it! Thank you so much! I only noticed your software update after I reported the bug! It's still crashing! In the previous version, it would crash immediately when watching videos! PipePipe-5.0.0-beta2 can watch videos, but it crashes when I drag the progress bar!!
{"os":"Linux Android 12 - 31","device":"Xiaomi 22041216C (xaga)","app_version":"5.0.0-beta2 (2001)","timestamp":1761992930616,"language":"zh_CN","timezone":"Asia/Shanghai (UTC+8:00)","task":"UNKNOWN","request":null,"stacktrace":"java.lang.NullPointerException\n\tat project.pipepipe.app.viewmodel.VideoDetailViewModel$loadDanmaku$$inlined$updateCurrentEntry$1.invoke(VideoDetailViewModel.kt:559)\n\tat project.pipepipe.app.viewmodel.VideoDetailViewModel$loadDanmaku$$inlined$updateCurrentEntry$1.invoke(VideoDetailViewModel.kt:34)\n\tat project.pipepipe.app.viewmodel.BaseViewModel.setState(BaseViewModel.kt:232)\n\tat project.pipepipe.app.viewmodel.VideoDetailViewModel.loadDanmaku(VideoDetailViewModel.kt:34)\n\tat project.pipepipe.app.viewmodel.VideoDetailViewModel$loadDanmaku$1.invokeSuspend(VideoDetailViewModel.kt:0)\n\tat kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:34)\n\tat kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100)\n\tat kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:586)\n\tat kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:829)\n\tat kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:717)\n\tat kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:704)\n\tSuppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@e58a25b, Dispatchers.Default]\n"}
um for unknown reason the error log hasn't recorded the video you are watching. Can you share the link by using the share button?
um for unknown reason the error log hasn't recorded the video you are watching. Can you share the link by using the share button?
https://www.bilibili.com/video/BV1CQ4EzyExG?p=1 I updated PipePipe to version 5.0.0-beta2! For a period of time, it would crash when watching videos, but after a while, the software would be fine when I opened it again! It would crash frequently for a certain period of time, but it would stabilize after a while. I don't quite understand why!
It works fine on my devices here. As you mentioned that it works fine after a while, I assume it a device-specific issue.
You can do further tests and see if it still happen.
It works fine on my devices here. As you mentioned that it works fine after a while, I assume it a device-specific issue.
You can do further tests and see if it still happen.
I have two other Android devices. I'll export the data to another Android tablet, which I'll use to watch videos. If it still crashes, I'll message you. Thanks, but unfortunately, although I have multiple devices, their Android versions aren't very high because I don't like updating system versions. Most of them are running Android 12 or 13.
It works fine on my devices here. As you mentioned that it works fine after a while, I assume it a device-specific issue.
You can do further tests and see if it still happen.
I'm using another Android tablet, a Lenovo Xiaoxin Pad Pro 2021 running Android 13. It's unable to play videos; clicking to play a video causes it to crash. The reason it crashes is because I add video collections and watched videos to my playlist. My tablet only has one playlist named "Watched Videos." I suspect the problem lies with the playlist; when I try to watch a large number of videos and add them to the playlist, this problem occurs. However, it works normally after about ten minutes.
{"os":"Linux Android 13 - 33","device":"Lenovo Lenovo TB-J716F (J716F)","app_version":"5.0.0-beta2 (2001)","timestamp":1762047870837,"language":"zh_CN_#Hans","timezone":"Asia/Shanghai (UTC+8:00)","task":"FETCH_FIRST_PAGE","request":"danmaku://bilibili.raw?cid=32220250664","stacktrace":"java.lang.NullPointerException\n\tat project.pipepipe.extractor.services.bilibili.extractor.BilibiliDanmakuExtractor.fetchFirstPage(BilibiliDanmakuExtractor.kt:46)\n\tat project.pipepipe.extractor.Router.route(Router.kt:40)\n\tat project.pipepipe.extractor.Router.execute(Router.kt:88)\n\tat project.pipepipe.app.PipePipeApplication$onCreate$2.invoke(PipePipeApplication.kt:64)\n\tat project.pipepipe.app.PipePipeApplication$onCreate$2.invoke(PipePipeApplication.kt:64)\n\tat project.pipepipe.app.helper.JobRunnerKt.executeJobFlow(JobRunner.kt:56)\n\tat project.pipepipe.app.helper.JobRunnerKt$executeJobFlow$1.invokeSuspend(JobRunner.kt:0)\n\tat kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:34)\n\tat kotlinx.coroutines.internal.ScopeCoroutine.afterResume(Scopes.kt:35)\n\tat kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:101)\n\tat kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:47)\n\tat kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100)\n\tat kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:124)\n\tat kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:89)\n\tat kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:586)\n\tat kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:820)\n\tat kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:717)\n\tat kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:704)\n"}
{"os":"Linux Android 13 - 33","device":"Lenovo Lenovo TB-J716F (J716F)","app_version":"5.0.0-beta2 (2001)","timestamp":1762047870837,"language":"zh_CN_#Hans","timezone":"Asia/Shanghai (UTC+8:00)","task":"FETCH_FIRST_PAGE","request":"danmaku://bilibili.raw?cid=32220250664","stacktrace":"java.lang.NullPointerException\n\tat project.pipepipe.extractor.services.bilibili.extractor.BilibiliDanmakuExtractor.fetchFirstPage(BilibiliDanmakuExtractor.kt:46)\n\tat project.pipepipe.extractor.Router.route(Router.kt:40)\n\tat project.pipepipe.extractor.Router.execute(Router.kt:88)\n\tat project.pipepipe.app.PipePipeApplication$onCreate$2.invoke(PipePipeApplication.kt:64)\n\tat project.pipepipe.app.PipePipeApplication$onCreate$2.invoke(PipePipeApplication.kt:64)\n\tat project.pipepipe.app.helper.JobRunnerKt.executeJobFlow(JobRunner.kt:56)\n\tat project.pipepipe.app.helper.JobRunnerKt$executeJobFlow$1.invokeSuspend(JobRunner.kt:0)\n\tat kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:34)\n\tat kotlinx.coroutines.internal.ScopeCoroutine.afterResume(Scopes.kt:35)\n\tat kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:101)\n\tat kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:47)\n\tat kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100)\n\tat kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:124)\n\tat kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:89)\n\tat kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:586)\n\tat kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:820)\n\tat kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:717)\n\tat kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:704)\n"}