Tubular
Tubular copied to clipboard
NullPointerException - SponsorBlock's `Whitelist channel` Feature Causes Crash when Rotating Screen
Checklist
- [x] I am able to reproduce the bug with the latest version.
- [x] I am not able to reproduce the bug with the latest version of vanilla NewPipe.
- [x] I made sure that there are no existing issues - open or closed - which I could contribute my information to.
- [x] I have read the FAQ and my problem isn't listed.
- [x] I have taken the time to fill in all the required details. I understand that the bug report will be dismissed otherwise.
- [x] This issue contains only one bug.
- [x] I have read and understood the vanilla NewPipe contribution guidelines.
Affected version
0.27.7
Steps to reproduce the bug
- Open the app
- Select any video
- Go to the SponsorBlock tab
- Switch the Whitelist channel button on
- Physically rotate your device into landscape mode
Expected behavior
Normal viewing of the video without any crashes.
Actual behavior
An immediate crash to the Android home screen and a notifications message stating App/UI crashed.
Screenshots/Recordings
https://github.com/user-attachments/assets/364a07e9-35f0-4197-9288-6f8704e6daa0
Logs
Exception
- User Action: ui error
- Request: ACRA report
- Content Country: AU
- Content Language: en-GB
- App Language: en_AU
- Service: none
- Timestamp: 2025-06-18T14:00:27.678+08:00
- Package: org.polymorphicshade.tubular
- Service: none
- Version: 0.27.7
- OS: Linux Android 15 - 35
Crash log
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String org.schabi.newpipe.extractor.stream.StreamInfo.getUploaderName()' on a null object reference
at org.schabi.newpipe.fragments.list.sponsorblock.SponsorBlockFragment.onCheckedChanged(SponsorBlockFragment.java:145)
at android.widget.CompoundButton.setChecked(CompoundButton.java:222)
at androidx.appcompat.widget.SwitchCompat.setChecked(SwitchCompat.java:1183)
at android.widget.CompoundButton.onRestoreInstanceState(CompoundButton.java:676)
at android.view.View.dispatchRestoreInstanceState(View.java:23141)
at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:4015)
at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:4015)
at android.view.View.restoreHierarchyState(View.java:23119)
at androidx.fragment.app.Fragment.restoreViewState(Fragment.java:698)
at androidx.fragment.app.Fragment.restoreViewState(Fragment.java:3176)
at androidx.fragment.app.Fragment.performActivityCreated(Fragment.java:3161)
at androidx.fragment.app.FragmentStateManager.activityCreated(FragmentStateManager.java:619)
at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:275)
at androidx.fragment.app.FragmentStore.moveToExpectedState(FragmentStore.java:114)
at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1455)
at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:3034)
at androidx.fragment.app.FragmentManager.dispatchActivityCreated(FragmentManager.java:2952)
at androidx.fragment.app.Fragment.performActivityCreated(Fragment.java:3162)
at androidx.fragment.app.FragmentStateManager.activityCreated(FragmentStateManager.java:619)
at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:275)
at androidx.fragment.app.FragmentStore.moveToExpectedState(FragmentStore.java:114)
at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1455)
at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:3034)
at androidx.fragment.app.FragmentManager.dispatchActivityCreated(FragmentManager.java:2952)
at androidx.fragment.app.FragmentController.dispatchActivityCreated(FragmentController.java:263)
at androidx.fragment.app.FragmentActivity.onStart(FragmentActivity.java:350)
at androidx.appcompat.app.AppCompatActivity.onStart(AppCompatActivity.java:251)
at org.schabi.newpipe.MainActivity.onStart(MainActivity.java:219)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1765)
at android.app.Activity.performStart(Activity.java:9045)
at android.app.ActivityThread.handleStartActivity(ActivityThread.java:4123)
at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:270)
at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:250)
at android.app.servertransaction.TransactionExecutor.executeLifecycleItem(TransactionExecutor.java:222)
at android.app.servertransaction.TransactionExecutor.executeTransactionItems(TransactionExecutor.java:107)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:81)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2666)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loopOnce(Looper.java:258)
at android.os.Looper.loop(Looper.java:356)
at android.app.ActivityThread.main(ActivityThread.java:8837)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:598)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:896)
Exception
- User Action: ui error
- Request: ACRA report
- Content Country: AU
- Content Language: en-GB
- App Language: en_AU
- Service: none
- Timestamp: 2025-06-18T14:08:43.817+08:00
- Package: org.polymorphicshade.tubular
- Service: none
- Version: 0.27.7
- OS: Linux Android 15 - 35
Crash log
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String org.schabi.newpipe.extractor.stream.StreamInfo.getUploaderName()' on a null object reference
at org.schabi.newpipe.fragments.list.sponsorblock.SponsorBlockFragment.onCheckedChanged(SponsorBlockFragment.java:145)
at android.widget.CompoundButton.setChecked(CompoundButton.java:222)
at androidx.appcompat.widget.SwitchCompat.setChecked(SwitchCompat.java:1183)
at android.widget.CompoundButton.onRestoreInstanceState(CompoundButton.java:676)
at android.view.View.dispatchRestoreInstanceState(View.java:23141)
at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:4015)
at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:4015)
at android.view.View.restoreHierarchyState(View.java:23119)
at androidx.fragment.app.Fragment.restoreViewState(Fragment.java:698)
at androidx.fragment.app.Fragment.restoreViewState(Fragment.java:3176)
at androidx.fragment.app.Fragment.performActivityCreated(Fragment.java:3161)
at androidx.fragment.app.FragmentStateManager.activityCreated(FragmentStateManager.java:619)
at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:275)
at androidx.fragment.app.FragmentStore.moveToExpectedState(FragmentStore.java:114)
at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1455)
at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:3034)
at androidx.fragment.app.FragmentManager.dispatchActivityCreated(FragmentManager.java:2952)
at androidx.fragment.app.Fragment.performActivityCreated(Fragment.java:3162)
at androidx.fragment.app.FragmentStateManager.activityCreated(FragmentStateManager.java:619)
at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:275)
at androidx.fragment.app.FragmentStore.moveToExpectedState(FragmentStore.java:114)
at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1455)
at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:3034)
at androidx.fragment.app.FragmentManager.dispatchActivityCreated(FragmentManager.java:2952)
at androidx.fragment.app.FragmentController.dispatchActivityCreated(FragmentController.java:263)
at androidx.fragment.app.FragmentActivity.onStart(FragmentActivity.java:350)
at androidx.appcompat.app.AppCompatActivity.onStart(AppCompatActivity.java:251)
at org.schabi.newpipe.MainActivity.onStart(MainActivity.java:219)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1765)
at android.app.Activity.performStart(Activity.java:9045)
at android.app.ActivityThread.handleStartActivity(ActivityThread.java:4123)
at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:270)
at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:250)
at android.app.servertransaction.TransactionExecutor.executeLifecycleItem(TransactionExecutor.java:222)
at android.app.servertransaction.TransactionExecutor.executeTransactionItems(TransactionExecutor.java:107)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:81)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2666)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loopOnce(Looper.java:258)
at android.os.Looper.loop(Looper.java:356)
at android.app.ActivityThread.main(ActivityThread.java:8837)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:598)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:896)
Exception
- User Action: ui error
- Request: ACRA report
- Content Country: AU
- Content Language: en-GB
- App Language: en_AU
- Service: none
- Timestamp: 2025-06-18T14:11:11.604+08:00
- Package: org.polymorphicshade.tubular
- Service: none
- Version: 0.27.7
- OS: Linux Android 15 - 35
Crash log
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String org.schabi.newpipe.extractor.stream.StreamInfo.getUploaderName()' on a null object reference
at org.schabi.newpipe.fragments.list.sponsorblock.SponsorBlockFragment.onCheckedChanged(SponsorBlockFragment.java:145)
at android.widget.CompoundButton.setChecked(CompoundButton.java:222)
at androidx.appcompat.widget.SwitchCompat.setChecked(SwitchCompat.java:1183)
at android.widget.CompoundButton.onRestoreInstanceState(CompoundButton.java:676)
at android.view.View.dispatchRestoreInstanceState(View.java:23141)
at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:4015)
at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:4015)
at android.view.View.restoreHierarchyState(View.java:23119)
at androidx.fragment.app.Fragment.restoreViewState(Fragment.java:698)
at androidx.fragment.app.Fragment.restoreViewState(Fragment.java:3176)
at androidx.fragment.app.Fragment.performActivityCreated(Fragment.java:3161)
at androidx.fragment.app.FragmentStateManager.activityCreated(FragmentStateManager.java:619)
at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:275)
at androidx.fragment.app.FragmentStore.moveToExpectedState(FragmentStore.java:114)
at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1455)
at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:3034)
at androidx.fragment.app.FragmentManager.dispatchActivityCreated(FragmentManager.java:2952)
at androidx.fragment.app.Fragment.performActivityCreated(Fragment.java:3162)
at androidx.fragment.app.FragmentStateManager.activityCreated(FragmentStateManager.java:619)
at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:275)
at androidx.fragment.app.FragmentStore.moveToExpectedState(FragmentStore.java:114)
at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1455)
at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:3034)
at androidx.fragment.app.FragmentManager.dispatchActivityCreated(FragmentManager.java:2952)
at androidx.fragment.app.FragmentController.dispatchActivityCreated(FragmentController.java:263)
at androidx.fragment.app.FragmentActivity.onStart(FragmentActivity.java:350)
at androidx.appcompat.app.AppCompatActivity.onStart(AppCompatActivity.java:251)
at org.schabi.newpipe.MainActivity.onStart(MainActivity.java:219)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1765)
at android.app.Activity.performStart(Activity.java:9045)
at android.app.ActivityThread.handleStartActivity(ActivityThread.java:4123)
at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:270)
at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:250)
at android.app.servertransaction.TransactionExecutor.executeLifecycleItem(TransactionExecutor.java:222)
at android.app.servertransaction.TransactionExecutor.executeTransactionItems(TransactionExecutor.java:107)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:81)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2666)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loopOnce(Looper.java:258)
at android.os.Looper.loop(Looper.java:356)
at android.app.ActivityThread.main(ActivityThread.java:8837)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:598)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:896)
Affected Android/Custom ROM version
Android 15 (Kernel: 5.10.209-android12-9-00019-g4ea09a298bb4-ab12292661 #1 Wed Aug 28 22:16:09 UTC 2024, Baseband: MPSS.DE.2.0-01026.2-WAIPIO_GEN_PACK-1.90683.1.94136.4) / Nothing OS 3.0 (Build number: Pong-V3.0-250506-1805)
Affected device model
Nothing Phone (2)
Additional information
- I have Use Developer options turned on, but even when I turned it back off and restarted my phone the crashing still occurred
- The crashes are occurring due to a
NullPointerExceptionregarding the NewPipe API'sgetUploaderName()function
I can reproduce, thank you for bug report
hey any plans to fix this soon? i keep experiencing this. :/