Skip to content

Fix the app crashing on Nougat when app detail screen is opened#1203

Merged
Iamlooker merged 1 commit intoDroid-ify:mainfrom
xinkev:fix/crash-on-appdetail-on-nougat
Jan 29, 2026
Merged

Fix the app crashing on Nougat when app detail screen is opened#1203
Iamlooker merged 1 commit intoDroid-ify:mainfrom
xinkev:fix/crash-on-appdetail-on-nougat

Conversation

@xinkev
Copy link
Copy Markdown
Contributor

@xinkev xinkev commented Jan 29, 2026

This issue occurs because setTooltipText is only available starting from API level 26.
The fix replaces it with TooltipCompat.setTooltipText.

Fixes #1199

@Iamlooker
Copy link
Copy Markdown
Member

Thanks 🙌

@Iamlooker Iamlooker merged commit 944141c into Droid-ify:main Jan 29, 2026
@xinkev xinkev deleted the fix/crash-on-appdetail-on-nougat branch January 29, 2026 09:44
@Careless
Copy link
Copy Markdown

not entirely fixed.

still happens in landscape mode on any detail page that has a screenshot/video reel.
does not happen in portrait mode.

can't seem to capture a crash report with LogFox.

examples:

works fine and is scrollable in landscape mode due to no screenshots/video reel:

  • microG Services
  • microG Companion
  • opencamera
  • bbs
  • audio recorder

crashes in landscape mode due to presence of screenshots/video reel:

  • droidify
  • logfox
  • davx5
  • localsend
  • qr scanner (pfa)

not sure how to capture a log because logfox isn't reporting the crash. let me know how I can assist.

@Iamlooker
Copy link
Copy Markdown
Member

@Careless is this a android nougat thing? Or is it also happening on later versions too?

@xinkev
Copy link
Copy Markdown
Contributor Author

xinkev commented Feb 24, 2026

@Iamlooker Probably just Nougat. However, this is a different issue. I initially thought this would be related to ImageView since they mentioned screenshots, but this is caused by android.R.attr.colorError which is only added in API level 26. Here's the log:

23:18:15.194  E  FATAL EXCEPTION: main
                 Process: com.looker.droidify.debug, PID: 4306
                 android.content.res.Resources$NotFoundException: Resource ID #0x0
                 	at android.content.res.ResourcesImpl.getValue(ResourcesImpl.java:190)
                 	at android.content.res.Resources.getValue(Resources.java:1290)
                 	at androidx.core.content.res.ResourcesCompat.isColorInt(ResourcesCompat.java:305)
                 	at androidx.core.content.res.ResourcesCompat.inflateColorStateList(ResourcesCompat.java:253)
                 	at androidx.core.content.res.ResourcesCompat.getColorStateList(ResourcesCompat.java:234)
                 	at androidx.core.content.ContextCompat.getColorStateList(ContextCompat.java:516)
                 	at com.looker.droidify.utility.common.extension.ContextKt.getColorFromAttr(Context.kt:98)
                 	at com.looker.droidify.ui.appDetail.AppDetailAdapter$InstallButtonViewHolder.<init>(AppDetailAdapter.kt:451)
                 	at com.looker.droidify.ui.appDetail.AppDetailAdapter.onCreateViewHolder(AppDetailAdapter.kt:1152)
                 	at com.looker.droidify.ui.appDetail.AppDetailAdapter.onCreateViewHolder(AppDetailAdapter.kt:94)
                 	at com.looker.droidify.widget.EnumRecyclerAdapter.onCreateViewHolder(EnumRecyclerAdapter.kt:24)
                 	at androidx.recyclerview.widget.RecyclerView$Adapter.createViewHolder(RecyclerView.java:7889)
                 	at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:6969)
                 	at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6853)
                 	at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6849)
                 	at androidx.recyclerview.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2422)
                 	at androidx.recyclerview.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1722)
                 	at androidx.recyclerview.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1682)
                 	at androidx.recyclerview.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:747)
                 	at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:4737)
                 	at androidx.recyclerview.widget.RecyclerView.dispatchLayout(RecyclerView.java:4459)
                 	at androidx.recyclerview.widget.RecyclerView.onLayout(RecyclerView.java:5011)
                 	at android.view.View.layout(View.java:17637)
                 	at android.view.ViewGroup.layout(ViewGroup.java:5575)
                 	at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
                 	at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
                 	at android.view.View.layout(View.java:17637)
                 	at android.view.ViewGroup.layout(ViewGroup.java:5575)
                 	at com.google.android.material.appbar.HeaderScrollingViewBehavior.layoutChild(HeaderScrollingViewBehavior.java:145)
                 	at com.google.android.material.appbar.ViewOffsetBehavior.onLayoutChild(ViewOffsetBehavior.java:43)
                 	at com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior.onLayoutChild(AppBarLayout.java:2461)
                 	at androidx.coordinatorlayout.widget.CoordinatorLayout.onLayout(CoordinatorLayout.java:918)
                 	at android.view.View.layout(View.java:17637)
                 	at android.view.ViewGroup.layout(ViewGroup.java:5575)
                 	at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
                 	at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
                 	at android.view.View.layout(View.java:17637)
                 	at android.view.ViewGroup.layout(ViewGroup.java:5575)
                 	at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
                 	at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
                 	at android.view.View.layout(View.java:17637)
                 	at android.view.ViewGroup.layout(ViewGroup.java:5575)
                 	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:17637)
                 	at android.view.ViewGroup.layout(ViewGroup.java:5575)
                 	at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
                 	at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
                 	at android.view.View.layout(View.java:17637)
                 	at android.view.ViewGroup.layout(ViewGroup.java:5575)
23:18:15.194  E  	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:17637)
                 	at android.view.ViewGroup.layout(ViewGroup.java:5575)
                 	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:726)
                 	at android.view.View.layout(View.java:17637)
                 	at android.view.ViewGroup.layout(ViewGroup.java:5575)
                 	at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2346)
                 	at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2068)
                 	at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1254)
                 	at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6337)
                 	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:874)
                 	at android.view.Choreographer.doCallbacks(Choreographer.java:686)
                 	at android.view.Choreographer.doFrame(Choreographer.java:621)
                 	at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:860)
                 	at android.os.Handler.handleCallback(Handler.java:751)
                 	at android.os.Handler.dispatchMessage(Handler.java:95)
                 	at android.os.Looper.loop(Looper.java:154)
                 	at android.app.ActivityThread.main(ActivityThread.java:6119)
                 	at java.lang.reflect.Method.invoke(Native Method)
                 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
                 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)

@Iamlooker
Copy link
Copy Markdown
Member

Thanks @xinkev that helps, and it is crazy that android does not fallback to something else

Will create a release this week to fix it

@Careless
Copy link
Copy Markdown

@Careless is this a android nougat thing? Or is it also happening on later versions too?

i can check with a newer phone i have, and i'll report back in a few.

@Careless
Copy link
Copy Markdown

I encountered no problems with landscape or portrait mode on Android versions 10 as well as 15 with droid-ify v0.7.0.

@xinkev
Copy link
Copy Markdown
Contributor Author

xinkev commented Feb 25, 2026

Thanks @xinkev that helps, and it is crazy that android does not fallback to something else

@Iamlooker
Yeah, I was pretty surprised coming back from iOS development. Xcode wouldn't even let me build the project in that situation.

@Iamlooker
Copy link
Copy Markdown
Member

Iamlooker commented Feb 25, 2026

I have never used Xcode, but anyways I think the fix would be to somehow use MaterialR.attr.colorError but it was not resolving locally for me 🤔

@opk12
Copy link
Copy Markdown

opk12 commented Feb 25, 2026

@Iamlooker Yeah, I was pretty surprised coming back from iOS development. Xcode wouldn't even let me build the project in that situation.

Same reaction coming from desktop Java, javac wouldn't have built either.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BUG] Crash when scrolling to the bottom of an app's details page

4 participants