Open virus2016 opened 1 year ago
*Do read files under `lib/` before reporting issues, you can find all the config there, all of them are straightforward.**
The app not to crash and chart to move where user wants it to go.
The app crashes randomly when it needs to redraw on moving the chart more than 1-3 times.
java.lang.NegativeArraySizeException: -2 com.github.mikephil.charting.utils.Transformer.generateTransformedValuesScatter(Transformer.java:104) com.github.mikephil.charting.renderer.ScatterChartRenderer.drawValues(ScatterChartRenderer.java:116) com.github.mikephil.charting.charts.BarLineChartBase.onDraw(BarLineChartBase.java:278) android.view.View.draw(View.java:22350) android.view.View.updateDisplayListIfDirty(View.java:21226) android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4500) android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4473) android.view.View.updateDisplayListIfDirty(View.java:21186) android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4500) android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4473) android.view.View.updateDisplayListIfDirty(View.java:21186) android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4500) android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4473) android.view.View.updateDisplayListIfDirty(View.java:21186) android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4500) android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4473) android.view.View.updateDisplayListIfDirty(View.java:21186) android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4500) android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4473) android.view.View.updateDisplayListIfDirty(View.java:21186) android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4500) android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4473) android.view.View.updateDisplayListIfDirty(View.java:21186) android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4500) android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4473) android.view.View.updateDisplayListIfDirty(View.java:21186) android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4500) android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4473) android.view.View.updateDisplayListIfDirty(View.java:21186) android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4500) android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4473) android.view.View.updateDisplayListIfDirty(View.java:21186) android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4500) android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4473) android.view.View.updateDisplayListIfDirty(View.java:21186) android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4500) android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4473) android.view.View.updateDisplayListIfDirty(View.java:21186) android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4500) android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4473) android.view.View.updateDisplayListIfDirty(View.java:21186) android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:559) android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:565) android.view.ThreadedRenderer.draw(ThreadedRenderer.java:642) android.view.ViewRootImpl.draw(ViewRootImpl.java:4101) android.view.ViewRootImpl.performDraw(ViewRootImpl.java:3828) android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:3099) android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1952) android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:8171) android.view.Choreographer$CallbackRecord.run(Choreographer.java:972) android.view.Choreographer.doCallbacks(Choreographer.java:796) android.view.Choreographer.doFrame(Choreographer.java:731) android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:957) android.os.Handler.handleCallback(Handler.java:938) android.os.Handler.dispatchMessage(Handler.java:99) android.os.Looper.loop(Looper.java:223) android.app.ActivityThread.main(ActivityThread.java:7656) java.lang.reflect.Method.invoke(Native Method) com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
import { AntDesign } from "@expo/vector-icons"; import { NavigationContainer } from "@react-navigation/native"; import { createBottomTabNavigator } from "@react-navigation/bottom-tabs"; import { ScatterChart } from "react-native-charts-wrapper"; function ChartScreen() { return ( <View style={{ flex: 1 }}> <View style={{ flex: 1 }}> <ScatterChart // doubleTapToZoomEnabled={false} // animation={{ durationX: 1000, durationY: 1000 }} style={{ flex: 1 }} data={{ dataSets: [ { label: `Data Set ${Math.floor(Math.random() * 100 - 50)}`, values: [ { y: Math.random() * 100 - 50, x: Math.random() * 100 - 10 }, { y: Math.random() * 100 - 50, x: Math.random() * 100 - 10 }, { y: Math.random() * 100 - 50, x: Math.random() * 100 - 10 }, ], }, ], }} /> </View> </View> ); } function OfflineScreen() { return ( <View style={{ flex: 1, justifyContent: "center", alignItems: "center" }}> <Text>Offline POC</Text> </View> ); } const Tab = createBottomTabNavigator(); export default function App() { return ( <NavigationContainer> <Tab.Navigator> <Tab.Screen name="Chart POC" options={{ tabBarIcon: ({ color, focused, size }) => ( <AntDesign name="dotchart" size={size} color={color} /> ), }} component={ChartScreen} /> <Tab.Screen name="Offline POC" component={OfflineScreen} options={{ tabBarBadge: 3 }} /> </Tab.Navigator> </NavigationContainer> ); }
@virus2016 version 0.5.2? this version doesn't exist.
Hey @mMarcos208 - sorry 0.5.11 😉
*Do read files under `lib/` before reporting issues, you can find all the config there, all of them are straightforward.**
Expected Behavior
The app not to crash and chart to move where user wants it to go.
Actual Behavior
The app crashes randomly when it needs to redraw on moving the chart more than 1-3 times.
Screenshots
Data and config
java.lang.NegativeArraySizeException: -2 com.github.mikephil.charting.utils.Transformer.generateTransformedValuesScatter(Transformer.java:104) com.github.mikephil.charting.renderer.ScatterChartRenderer.drawValues(ScatterChartRenderer.java:116) com.github.mikephil.charting.charts.BarLineChartBase.onDraw(BarLineChartBase.java:278) android.view.View.draw(View.java:22350) android.view.View.updateDisplayListIfDirty(View.java:21226) android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4500) android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4473) android.view.View.updateDisplayListIfDirty(View.java:21186) android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4500) android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4473) android.view.View.updateDisplayListIfDirty(View.java:21186) android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4500) android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4473) android.view.View.updateDisplayListIfDirty(View.java:21186) android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4500) android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4473) android.view.View.updateDisplayListIfDirty(View.java:21186) android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4500) android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4473) android.view.View.updateDisplayListIfDirty(View.java:21186) android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4500) android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4473) android.view.View.updateDisplayListIfDirty(View.java:21186) android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4500) android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4473) android.view.View.updateDisplayListIfDirty(View.java:21186) android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4500) android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4473) android.view.View.updateDisplayListIfDirty(View.java:21186) android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4500) android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4473) android.view.View.updateDisplayListIfDirty(View.java:21186) android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4500) android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4473) android.view.View.updateDisplayListIfDirty(View.java:21186) android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4500) android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4473) android.view.View.updateDisplayListIfDirty(View.java:21186) android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4500) android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4473) android.view.View.updateDisplayListIfDirty(View.java:21186) android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:559) android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:565) android.view.ThreadedRenderer.draw(ThreadedRenderer.java:642) android.view.ViewRootImpl.draw(ViewRootImpl.java:4101) android.view.ViewRootImpl.performDraw(ViewRootImpl.java:3828) android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:3099) android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1952) android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:8171) android.view.Choreographer$CallbackRecord.run(Choreographer.java:972) android.view.Choreographer.doCallbacks(Choreographer.java:796) android.view.Choreographer.doFrame(Choreographer.java:731) android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:957) android.os.Handler.handleCallback(Handler.java:938) android.os.Handler.dispatchMessage(Handler.java:99) android.os.Looper.loop(Looper.java:223) android.app.ActivityThread.main(ActivityThread.java:7656) java.lang.reflect.Method.invoke(Native Method) com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
Steps to Reproduce the Problem
Specifications