首页 > 解决方案 > java.lang.IllegalArgumentException:路径必须是凸的,随机崩溃

问题描述

我的应用程序正面临真实用户的随机崩溃。不幸的是我无法重现它。有没有人对这个问题有更深入的了解,或者有解决崩溃的办法?堆栈跟踪如下。

java.lang.IllegalArgumentException: path must be convex
 at android.graphics.Outline.setConvexPath(Outline.java:284)
 at android.graphics.drawable.GradientDrawable.getOutline(GradientDrawable.java:1745)
 at android.view.ViewOutlineProvider$1.getOutline(ViewOutlineProvider.java:38)
 at android.view.View.rebuildOutline(View.java:17362)
 at android.view.View.invalidateDrawable(View.java:22675)
 at android.graphics.drawable.Drawable.invalidateSelf(Drawable.java:457)
 at android.graphics.drawable.Drawable.setVisible(Drawable.java:866)
 at android.view.View.onVisibilityAggregated(View.java:13928)
 at android.view.View.dispatchDetachedFromWindow(View.java:20062)
 at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:3995)
 at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:3987)
 at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:3987)
 at android.view.ViewGroup.removeViewInternal(ViewGroup.java:5588)
 at android.view.ViewGroup.removeViewAt(ViewGroup.java:5535)
 at android.support.v7.widget.RecyclerView$5.removeViewAt(RecyclerView.java:877)
 at android.support.v7.widget.ChildHelper.removeViewAt(ChildHelper.java:168)
 at android.support.v7.widget.RecyclerView$LayoutManager.removeViewAt(RecyclerView.java:8374)
 at android.support.v7.widget.RecyclerView$LayoutManager.removeAndRecycleViewAt(RecyclerView.java:8647)
 at android.support.v7.widget.LinearLayoutManager.recycleChildren(LinearLayoutManager.java:1369)
 at android.support.v7.widget.LinearLayoutManager.recycleViewsFromEnd(LinearLayoutManager.java:1449)
 at android.support.v7.widget.LinearLayoutManager.recycleByLayoutState(LinearLayoutManager.java:1482)
 at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1508)
 at android.support.v7.widget.LinearLayoutManager.scrollBy(LinearLayoutManager.java:1331)
 at android.support.v7.widget.LinearLayoutManager.scrollVerticallyBy(LinearLayoutManager.java:1075)
 at android.support.v7.widget.RecyclerView.scrollStep(RecyclerView.java:1832)
 at android.support.v7.widget.RecyclerView$ViewFlinger.run(RecyclerView.java:5067)
 at android.view.Choreographer$CallbackRecord.run(Choreographer.java:949)
 at android.view.Choreographer.doCallbacks(Choreographer.java:761)
 at android.view.Choreographer.doFrame(Choreographer.java:693)
 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:7045)
 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:965)

我找到了这个 stackoverflow帖子,但在我的情况下它没有用。该问题似乎在绘制 RecyclerView 时发生。我对 RecyclerView 项目使用自定义背景,我怀疑这可能是原因。

标签: javaandroidxml

解决方案


推荐阅读