Hi,
I am trying to make a POC using your library but I have encountered a hard crash whenever the user presses the power button of the device (Samsung XCover 5 running Android 13) whilst streaming a video. This happens continuesly so it's easy to reproduce. I also was able to reproduce this on the Android Emulator running A13.
I also cloned the project, build and installed the app and I am still getting the same crash and log output !
It seems like network connectivity is happening on the main Thread, which StrictMode doesn't like ?
The error which is being thrown is the following :
--------- beginning of crash
2023-04-20 10:25:13.504 16791-16791/com.company.videopoc E/AndroidRuntime: FATAL EXCEPTION: main
Process:com.company.videopoc, PID: 16791
java.lang.RuntimeException: Unable to pause activity {com.company.videopoc/com.company.videopoc.ui.ShowVideoActivity}: android.os.NetworkOnMainThreadException
at android.app.ActivityThread.performPauseActivityIfNeeded(ActivityThread.java:5704)
at android.app.ActivityThread.performPauseActivity(ActivityThread.java:5655)
at android.app.ActivityThread.handlePauseActivity(ActivityThread.java:5607)
at android.app.servertransaction.PauseActivityItem.execute(PauseActivityItem.java:47)
at android.app.servertransaction.ActivityTransactionItem.execute(ActivityTransactionItem.java:45)
at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:176)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2571)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:226)
at android.os.Looper.loop(Looper.java:313)
at android.app.ActivityThread.main(ActivityThread.java:8741)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1067)
Caused by: android.os.NetworkOnMainThreadException
at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1667)
at com.android.org.conscrypt.Platform.blockGuardOnNetwork(Platform.java:431)
at com.android.org.conscrypt.ConscryptEngineSocket$SSLInputStream.processDataFromSocket(ConscryptEngineSocket.java:836)
at com.android.org.conscrypt.ConscryptEngineSocket$SSLInputStream.readUntilDataAvailable(ConscryptEngineSocket.java:824)
at com.android.org.conscrypt.ConscryptEngineSocket$SSLInputStream.read(ConscryptEngineSocket.java:797)
at com.android.okhttp.okio.Okio$2.read(Okio.java:138)
at com.android.okhttp.okio.AsyncTimeout$2.read(AsyncTimeout.java:213)
at com.android.okhttp.okio.RealBufferedSource.request(RealBufferedSource.java:72)
at com.android.okhttp.okio.RealBufferedSource.require(RealBufferedSource.java:65)
at com.android.okhttp.okio.RealBufferedSource.readHexadecimalUnsignedLong(RealBufferedSource.java:271)
at com.android.okhttp.internal.http.Http1xStream$ChunkedSource.readChunkSize(Http1xStream.java:456)
at com.android.okhttp.internal.http.Http1xStream$ChunkedSource.read(Http1xStream.java:437)
at com.android.okhttp.internal.Util.skipAll(Util.java:165)
at com.android.okhttp.internal.Util.discard(Util.java:147)
at com.android.okhttp.internal.http.Http1xStream$ChunkedSource.close(Http1xStream.java:474)
at com.android.okhttp.okio.RealBufferedSource.close(RealBufferedSource.java:397)
at com.android.okhttp.okio.RealBufferedSource$1.close(RealBufferedSource.java:385)
at com.google.firebase.perf.network.InstrHttpInputStream.close(InstrHttpInputStream.java:67)
at java.io.BufferedInputStream.close(BufferedInputStream.java:485)
at java.io.FilterInputStream.close(FilterInputStream.java:180)
at com.github.niqdev.mjpeg.MjpegViewDefault._stopPlayback(MjpegViewDefault.java:143)
at com.github.niqdev.mjpeg.MjpegViewDefault.stopPlayback(MjpegViewDefault.java:283)
at com.github.niqdev.mjpeg.MjpegSurfaceView.stopPlayback(MjpegSurfaceView.java:136)
at com.company.videopoc.ui.ShowVideoActivity.onPause(ShowVideoActivity.kt:206)
at android.app.Activity.performPause(Activity.java:8765)
at android.app.Instrumentation.callActivityOnPause(Instrumentation.java:1585)
at android.app.ActivityThread.performPauseActivityIfNeeded(ActivityThread.java:5694)
at android.app.ActivityThread.performPauseActivity(ActivityThread.java:5655)
at android.app.ActivityThread.handlePauseActivity(ActivityThread.java:5607)
at android.app.servertransaction.PauseActivityItem.execute(PauseActivityItem.java:47)
at android.app.servertransaction.ActivityTransactionItem.execute(ActivityTransactionItem.java:45)
at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:176)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2571)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:226)
at android.os.Looper.loop(Looper.java:313)
at android.app.ActivityThread.main(ActivityThread.java:8741)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1067)
Hi @tiger79 thanks for reporting the issue, I'm not actively maintaining the project but if you think this is a bug, feel free to open a pr to fix it and I'll be happy to merge it! Thanks!
Hi, I am trying to make a POC using your library but I have encountered a hard crash whenever the user presses the power button of the device (Samsung XCover 5 running Android 13) whilst streaming a video. This happens continuesly so it's easy to reproduce. I also was able to reproduce this on the Android Emulator running A13.
I also cloned the project, build and installed the app and I am still getting the same crash and log output !
It seems like network connectivity is happening on the main Thread, which StrictMode doesn't like ?
The error which is being thrown is the following :