react-native-chart-kit icon indicating copy to clipboard operation
react-native-chart-kit copied to clipboard

Compatibility with Expo!

Open chetanmadaan opened this issue 1 year ago • 4 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

chetanmadaan avatar May 04 '23 19:05 chetanmadaan

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

SBRKH avatar May 23 '23 08:05 SBRKH

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?

Abe101 avatar May 23 '23 12:05 Abe101

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.

EliasT-94 avatar Jul 26 '23 12:07 EliasT-94