kitadai31 / revanced-patches-android6-7

YouTube ReVanced for Android 6.0-7.1
GNU General Public License v3.0
195 stars 15 forks source link

bug(enable-new-layout): App crashes when the video description contains YouTube links #10

Open IMX-Otaku opened 1 year ago

IMX-Otaku commented 1 year ago

Type

Other

Bug description

When I tap on a video title to see its description, if the description is long, the app crashes

Steps to reproduce

Step 1. Search for a video with long description (in my case, that was a vtuber's video) Step 2. Click on the title to try to view the description. Step 3. The app will crash

Relevant log output

I can't

Screenshots or videos

No response

Solution

No response

Additional context

No response

Acknowledgements

evd316 commented 1 year ago

I have exactly the same problem [Android 7.0], the app crashes when I click on the title of the video to open the details (a lot of titles are long and not completely visible, does not fit).

UPD: Suddenly, everything worked correctly, the application has not crashed for several days. On what day exactly it was corrected - I did not notice because I did not use this viewing function due to a crash.

UPD2: …crashes again (on other videos).

kitadai31 commented 1 year ago

Thanks. It's a problem of "Enable new layout". I try researching.

vladimirbalin commented 1 year ago

Same problem here, when long description expanded - app crashes Android 7.0

Logs:

dou: Real Cause => java.lang.IndexOutOfBoundsException: index=16384 out of bounds (limit=16384, nb=4)
Litho Context:
  layout_stack: LazilyConvertedElement -> ElementsRootFlat -> ComponentType -> ElementsRootFlat -> ElementEventWithGesture -> Wrapper(Container) -> Container -> Column -> ComponentType -> ElementsRootFlat -> ElementEventWithGesture -> Wrapper(Container) -> Container -> Column -> ComponentType -> ElementsRootFlat -> ElementEventWithGesture -> Wrapper(TextComponent) -> TextComponent
  log_tag: LithoRVSLCBinder
  tree_root: LazilyConvertedElement
  component_scope: Wrapper(TextComponent)
  thread_name: main
Caused by: java.lang.IndexOutOfBoundsException: index=16384 out of bounds (limit=16384, nb=4)
    at java.nio.Buffer.checkIndex(Buffer.java:536)
    at java.nio.HeapByteBuffer.getInt(HeapByteBuffer.java:297)
    at afsu.f(PG:1)
    at aqga.aN(PG:3)
    at obd.g(PG:86)
    at obd.h(PG:1)
    at obd.k(PG:4)
    at oay.T(PG:1)
    at dmb.I(PG:34)
    at dok.g(PG:5)
    at dok.c(PG:1)
    at dok.a(PG:1)
    at dre.d(PG:1)
    at dok.c(PG:5)
    at dok.b(PG:1)
    at dok.c(PG:10)
    at dok.b(PG:1)
    at dok.c(PG:10)
    at dok.b(PG:1)
    at dok.c(PG:10)
    at dok.a(PG:1)
    at dng.bp(PG:1)
    at dlv.d(PG:11)
    at dok.c(PG:5)
    at dok.b(PG:1)
    at dok.c(PG:10)
    at dok.a(PG:1)
    at dre.d(PG:1)
    at dok.c(PG:5)
    at dok.b(PG:1)
    at dok.c(PG:10)
    at dok.b(PG:1)
    at dok.c(PG:10)
    at dok.b(PG:1)
    at dok.c(PG:10)
    at dok.a(PG:1)
    at dng.bp(PG:1)
    at dlv.d(PG:11)
    at dok.c(PG:5)
    at dok.b(PG:1)
    at dok.c(PG:10)
    at dok.a(PG:1)
    at dre.d(PG:1)
    at dok.c(PG:5)
    at dok.b(PG:1)
    at dok.c(PG:10)
    at dok.b(PG:1)
    at dok.c(PG:10)
    at dok.b(PG:1)
    at dok.c(PG:10)
    at dok.b(PG:1)
    at dok.c(PG:10)
    at dok.b(PG:1)
    at dok.c(PG:10)
    at dok.b(PG:1)
    at dok.i(PG:2)
    at don.m(PG:19)
    at cvr.call(PG:13)
    at java.util.concurrent.FutureTask.run(FutureTask.java:237)
    at dmq.a(PG:2)
    at com.facebook.litho.ComponentTree.w(PG:16)
    at com.facebook.litho.ComponentTree.F(PG:15)
    at com.facebook.litho.ComponentTree.l(PG:8)
    at dpd.onMeasure(PG:26)
    at android.view.View.measure(View.java:19762)
    at oi.bt(PG:12)
    at android.support.v7.widget.LinearLayoutManager.k(PG:11)
    at android.support.v7.widget.LinearLayoutManager.I(PG:7)
    at android.support.v7.widget.LinearLayoutManager.o(PG:98)
    at android.support.v7.widget.RecyclerView.aO(PG:9)
    at android.support.v7.widget.RecyclerView.C(PG:9)
    at android.support.v7.widget.RecyclerView.onLayout(PG:1)
    at android.view.View.layout(View.java:17551)
    at android.view.ViewGroup.layout(ViewGroup.java:5614)
    at androidx.swiperefreshlayout.widget.SwipeRefreshLayout.onLayout(PG:9)
    at android.view.View.layout(View.java:17551)
    at android.view.ViewGroup.layout(ViewGroup.java:5614)
    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
    at android.view.View.layout(View.java:17551)
    at android.view.ViewGroup.layout(ViewGroup.java:5614)
    at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1079)
    at android.view.View.layout(View.java:17551)
    at android.view.ViewGroup.layout(ViewGroup.java:5614)
    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
    at android.view.View.layout(View.java:17551)
    at android.view.ViewGroup.layout(ViewGroup.java:5614)
    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
    at android.view.View.layout(View.java:17551)
    at android.view.ViewGroup.layout(ViewGroup.java:5614)
    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
    at android.view.View.layout(View.java:17551)
    at android.view.ViewGroup.layout(ViewGroup.java:5614)
    at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1079)
    at android.view.View.layout(View.java:17551)
    at android.view.ViewGroup.layout(ViewGroup.java:5614)
    at androidx.coordinatorlayout.widget.CoordinatorLayout.k(PG:31)
    at androidx.coordinatorlayout.widget.CoordinatorLayout.onLayout(PG:7)
    at android.view.View.layout(View.java:17551)
    at android.view.ViewGroup.layout(ViewGroup.java:5614)
    at com.google.android.apps.youtube.app.watch.nextgenwatch.ui.NextGenWatchLayout.onLayout(PG:5)
    at android.view.View.layout(View.java:17551)
    at android.view.ViewGroup.layout(ViewGroup.java:5614)
    at com.google.android.apps.youtube.app.watch.nextgenwatch.ui.NextGenWatchContainerLayout.g(PG:2)
    at com.google.android.apps.youtube.app.watch.nextgenwatch.ui.NextGenWatchContainerLayout.h(PG:7)
    at com.google.android.apps.youtube.app.watch.nextgenwatch.ui.NextGenWatchContainerLayout.onLayout(PG:18)
    at android.view.View.layout(View.java:17551)
    at android.view.ViewGroup.layout(ViewGroup.java:5614)
    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
    at android.view.View.layout(View.java:17551)
    at android.view.ViewGroup.layout(ViewGroup.java:5614)
    at com.google.android.apps.youtube.app.common.ui.navigationbar.NavigationBarDividerLayout.onLayout(PG:4)
    at android.view.View.layout(View.java:17551)
    at android.view.ViewGroup.layout(ViewGroup.java:5614)
    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
    at com.google.android.apps.youtube.app.ui.swipetocontainer.SwipeToContainerFrameLayout.onLayout(PG:1)
    at android.view.View.layout(View.java:17551)
    at android.view.ViewGroup.layout(ViewGroup.java:5614)
    at aka.onLayout(PG:6)
    at android.view.View.layout(View.java:17551)
    at android.view.ViewGroup.layout(ViewGroup.java:5614)
    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
    at android.view.View.layout(View.java:17551)
    at android.view.ViewGroup.layout(ViewGroup.java:5614)
    at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1741)
    at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1585)
    at android.widget.LinearLayout.onLayout(LinearLayout.java:1494)
    at android.view.View.layout(View.java:17551)
    at android.view.ViewGroup.layout(ViewGroup.java:5614)
    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
    at android.view.View.layout(View.java:17551)
    at android.view.ViewGroup.layout(ViewGroup.java:5614)
    at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1741)
    at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1585)
    at android.widget.LinearLayout.onLayout(LinearLayout.java:1494)
    at android.view.View.layout(View.java:17551)
    at android.view.ViewGroup.layout(ViewGroup.java:5614)
    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
    at com.android.internal.policy.DecorView.onLayout(DecorView.java:727)
    at android.view.View.layout(View.java:17551)
    at android.view.ViewGroup.layout(ViewGroup.java:5614)
    at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2386)
    at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2113)
    at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1290)
    at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6399)
    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:873)
    at android.view.Choreographer.doCallbacks(Choreographer.java:685)
    at android.view.Choreographer.doFrame(Choreographer.java:621)
    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:859)
    at android.os.Handler.handleCallback(Handler.java:754)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at android.os.Looper.loop(Looper.java:165)
    at android.app.ActivityThread.main(ActivityThread.java:6375)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:912)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:802)
kitadai31 commented 1 year ago

The cause was identified.

Length was not relevant.
If the description contains a link in YouTube like this image, the app will crash.

Screenshot_1683264359

But I can't fix this, sorry.
Please use the normal layout.


Workaround:

If you need to use the new layout, add description_body to custom filter to hide the video description section (ReVanced settings > Ads settings > Custom filter).

Hide the video description to prevent crashes.

Youtube

However, this may prevent you from getting important information from descriptions.
Therefore, I don't recommend enabling the new layout.