indiespirit / react-native-chart-kit

đź“ŠReact Native Chart Kit: Line Chart, Bezier Line Chart, Progress Ring, Bar chart, Pie chart, Contribution graph (heatmap)

Home Page:https://expo.io/@indiespirit/react-native-chart-kit

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Compatibility with Expo!

chetanmadaan opened this issue · comments

Hello Everyone,

we are trying to add it to our expo based project and are having issues. Does it still work with Expo?

Thanks,
Chetan

commented

Hello,
I'm using it with an expo based project and don't have any issue... What are your issues?

Hi,
I am using the LineChart comp inside a screen. Everything seems to be working fine on an iOS simulator but on Android it crashes as soon as the app reaches that screen. I see no errors whatsoever

Someone asked for help on the same issue 524

Edit: So I managed to run it on bare workflow and expo provided me with this:

ERROR Your app just crashed. See the error below. java.lang.ArrayIndexOutOfBoundsException android.graphics.DashPathEffect.<init>(DashPathEffect.java:36) com.horcrux.svg.RenderableView.setupStrokePaint(RenderableView.java:535) com.horcrux.svg.RenderableView.draw(RenderableView.java:449) com.horcrux.svg.RenderableView.render(RenderableView.java:408) com.horcrux.svg.GroupView.drawGroup(GroupView.java:97) com.horcrux.svg.GroupView.draw(GroupView.java:74) com.horcrux.svg.RenderableView.render(RenderableView.java:408) com.horcrux.svg.GroupView.drawGroup(GroupView.java:97) com.horcrux.svg.GroupView.draw(GroupView.java:74) com.horcrux.svg.RenderableView.render(RenderableView.java:408) com.horcrux.svg.GroupView.drawGroup(GroupView.java:97) com.horcrux.svg.GroupView.draw(GroupView.java:74) com.horcrux.svg.RenderableView.render(RenderableView.java:408) com.horcrux.svg.SvgView.drawChildren(SvgView.java:329) com.horcrux.svg.SvgView.drawOutput(SvgView.java:281) com.horcrux.svg.SvgView.onDraw(SvgView.java:119) android.view.View.draw(View.java:23195) android.view.View.updateDisplayListIfDirty(View.java:22062) android.view.View.draw(View.java:22926) android.view.ViewGroup.drawChild(ViewGroup.java:4529) com.facebook.react.views.view.ReactViewGroup.drawChild(ReactViewGroup.java:836) android.view.ViewGroup.dispatchDraw(ViewGroup.java:4290) com.facebook.react.views.view.ReactViewGroup.dispatchDraw(ReactViewGroup.java:809) android.view.View.updateDisplayListIfDirty(View.java:22053) android.view.View.draw(View.java:22926) android.view.ViewGroup.drawChild(ViewGroup.java:4529) com.facebook.react.views.view.ReactViewGroup.drawChild(ReactViewGroup.java:836) android.view.ViewGroup.dispatchDraw(ViewGroup.java:4290) com.facebook.react.views.view.ReactViewGroup.dispatchDraw(ReactViewGroup.java:809) android.view.View.updateDisplayListIfDirty(View.java:22053) android.view.View.draw(View.java:22926) android.view.ViewGroup.drawChild(ViewGroup.java:4529) com.facebook.react.views.view.ReactViewGroup.drawChild(ReactViewGroup.java:836) android.view.ViewGroup.dispatchDraw(ViewGroup.java:4290) com.facebook.react.views.view.ReactViewGroup.dispatchDraw(ReactViewGroup.java:809) android.view.View.draw(View.java:23198) android.view.View.updateDisplayListIfDirty(View.java:22062) android.view.View.draw(View.java:22926) android.view.ViewGroup.drawChild(ViewGroup.java:4529) com.facebook.react.views.view.ReactViewGroup.drawChild(ReactViewGroup.java:836) android.view.ViewGroup.dispatchDraw(ViewGroup.java:4290) com.facebook.react.views.view.ReactViewGroup.dispatchDraw(ReactViewGroup.java:809) android.view.View.updateDisplayListIfDirty(View.java:22053) android.view.View.draw(View.java:22926) android.view.ViewGroup.drawChild(ViewGroup.java:4529) android.view.ViewGroup.dispatchDraw(ViewGroup.java:4290) android.view.View.draw(View.java:23198) android.widget.ScrollView.draw(ScrollView.java:1869) com.facebook.react.views.scroll.ReactScrollView.draw(ReactScrollView.java:587) android.view.View.updateDisplayListIfDirty(View.java:22062) android.view.View.draw(View.java:22926) android.view.ViewGroup.drawChild(ViewGroup.java:4529) com.facebook.react.views.view.ReactViewGroup.drawChild(ReactViewGroup.java:836) android.view.ViewGroup.dispatchDraw(ViewGroup.java:4290) com.facebook.react.views.view.ReactViewGroup.dispatchDraw(ReactViewGroup.java:809) android.view.View.updateDisplayListIfDirty(View.java:22053) android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4513) android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4486) android.view.View.updateDisplayListIfDirty(View.java:22018) android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4513) android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4486) android.view.View.updateDisplayListIfDirty(View.java:22018) android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4513) android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4486) android.view.View.updateDisplayListIfDirty(View.java:22018) android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4513) android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4486) android.view.View.updateDisplayListIfDirty(View.java:22018) android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4513) android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4486) android.view.View.updateDisplayListIfDirty(View.java:22018) android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4513) android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4486) android.view.View.updateDisplayListIfDirty(View.java:22018) android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4513) android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4486) android.view.View.updateDisplayListIfDirty(View.java:22018) android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4513) android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4486) android.view.View.updateDisplayListIfDirty(View.java:22018) android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4513) android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4486) android.view.View.updateDisplayListIfDirty(View.java:22018) android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4513) android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4486) android.view.View.updateDisplayListIfDirty(View.java:22018) android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4513) android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4486) android.view.View.updateDisplayListIfDirty(View.java:22018) android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4513) android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4486) android.view.View.updateDisplayListIfDirty(View.java:22018) android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4513) android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4486) android.view.View.updateDisplayListIfDirty(View.java:22018) android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4513) android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4486) android.view.View.updateDisplayListIfDirty(View.java:22018) android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4513) android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4486) android.view.View.updateDisplayListIfDirty(View.java:22018) android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4513) android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4486) android.view.View.updateDisplayListIfDirty(View.java:22018) android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4513) android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4486) android.view.View.updateDisplayListIfDirty(View.java:22018) android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4513) android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4486) android.view.View.updateDisplayListIfDirty(View.java:22018) android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4513) android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4486) android.view.View.updateDisplayListIfDirty(View.java:22018) android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4513) android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4486) android.view.View.updateDisplayListIfDirty(View.java:22018) android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:682) android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:688) android.view.ThreadedRenderer.draw(ThreadedRenderer.java:786) android.view.ViewRootImpl.draw(ViewRootImpl.java:4579) android.view.ViewRootImpl.performDraw(ViewRootImpl.java:4290) android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:3517) android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2286) android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:8948) android.view.Choreographer$CallbackRecord.run(Choreographer.java:1231) android.view.Choreographer$CallbackRecord.run(Choreographer.java:1239) android.view.Choreographer.doCallbacks(Choreographer.java:899) android.view.Choreographer.doFrame(Choreographer.java:832) android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1214) android.os.Handler.handleCallback(Handler.java:942) android.os.Handler.dispatchMessage(Handler.java:99) android.os.Looper.loopOnce(Looper.java:201) android.os.Looper.loop(Looper.java:288) android.app.ActivityThread.main(ActivityThread.java:7898) java.lang.reflect.Method.invoke(Native Method) com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548) com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)

Can anyone help here?

In my case this issue was caused by me setting propsForBackgroundLines: { opacity: 0.5, strokeDasharray: [], stroke: theme.midBluishGreyTwo, },
in the chartConfig. the strokeDasharray being empty would result in a crash on Android. Removing it solved the issue for me.