armcha / armcha/Space-Navigation-View
Crashing on some devices after switching to Android Bundle
- 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