armcha / armcha/Space-Navigation-View

Crashing on some devices after switching to Android Bundle

Open
#93 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
2k
Forks
376
PR merge metrics
No merged PRs in 30d

Description

After switching to using Android Bundles to build my project I'm now seeing this library causing crashes on some devices.

I've seen similar behavior to this with other 3rd party libraries as well and they all have released updates to fix any potential for crashing.

android.view.InflateException: Binary XML file line #37: Can't convert value at index 3 to dimension: type=0x1
Caused by: java.lang.UnsupportedOperationException: Can't convert value at index 3 to dimension: type=0x1
at android.content.res.TypedArray.getDimensionPixelSize(TypedArray.java:736)
at android.view.ViewGroup$MarginLayoutParams.(ViewGroup.java:8348)
at android.widget.RelativeLayout$LayoutParams.(RelativeLayout.java:1269)
at android.widget.RelativeLayout.generateLayoutParams(RelativeLayout.java:1090)
at android.widget.RelativeLayout.generateLayoutParams(RelativeLayout.java:83)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:865)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)
at android.view.LayoutInflater.inflate(LayoutInflater.java:515)
at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
at com.luseen.spacenavigation.SpaceNavigationView.a(SpaceNavigationView.java:423)
at com.luseen.spacenavigation.SpaceNavigationView.c(SpaceNavigationView.java:381)
at com.luseen.spacenavigation.SpaceNavigationView.onSizeChanged(SpaceNavigationView.java:249)
at android.view.View.sizeChange(View.java:22594)
at android.view.View.setFrame(View.java:22536)
at android.view.View.layout(View.java:22396)
at android.view.ViewGroup.layout(ViewGroup.java:6572)
at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1083)
at android.view.View.layout(View.java:22399)
at android.view.ViewGroup.layout(ViewGroup.java:6572)
at androidx.drawerlayout.widget.DrawerLayout.onLayout(DrawerLayout.java:1231)
at android.view.View.layout(View.java:22399)
at android.view.ViewGroup.layout(ViewGroup.java:6572)
at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1083)
at android.view.View.layout(View.java:22399)
at android.view.ViewGroup.layout(ViewGroup.java:6572)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
at android.view.View.layout(View.java:22399)
at android.view.ViewGroup.layout(ViewGroup.java:6572)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1812)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1656)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1565)
at android.view.View.layout(View.java:22399)
at android.view.ViewGroup.layout(ViewGroup.java:6572)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
at android.view.View.layout(View.java:22399)
at android.view.ViewGroup.layout(ViewGroup.java:6572)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1812)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1656)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1565)
at android.view.View.layout(View.java:22399)
at android.view.ViewGroup.layout(ViewGroup.java:6572)
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:1042)
at android.view.View.layout(View.java:22399)
at android.view.ViewGroup.layout(ViewGroup.java:6572)
at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:3340)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2804)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1850)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:8455)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:949)
at android.view.Choreographer.doCallbacks(Choreographer.java:761)
at android.view.Choreographer.doFrame(Choreographer.java:696)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:935)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:6981)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1445)

Contributor guide

No contributing guide indexed for this repository

Research direction

Start in SpaceNavigationView.java at the stack-trace entries for onSizeChanged and the layout inflation path. Investigate which resource value is being read as a dimension after Android Bundle resource processing, then reproduce the InflateException on an affected device or build. Done means the reported crash no longer occurs after switching to Android Bundles.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, java
Domain
mobile-dev
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.