Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/198.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android:IndexOutOfBoundsException:索引8无效,大小为0_Java_Android_Indexoutofboundsexception - Fatal编程技术网

Java Android:IndexOutOfBoundsException:索引8无效,大小为0

Java Android:IndexOutOfBoundsException:索引8无效,大小为0,java,android,indexoutofboundsexception,Java,Android,Indexoutofboundsexception,我有一个错误,我从昨天开始就在寻找它。它似乎是数组中的一个大小问题。 这是异常似乎发生时的函数: private XYMultipleSeriesDataset getTruitonBarDataset() { XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset(); int [] classObject =new int[] {-70,-56,-45,-80,-47,-55,-

我有一个错误,我从昨天开始就在寻找它。它似乎是数组中的一个大小问题。 这是异常似乎发生时的函数:

     private XYMultipleSeriesDataset getTruitonBarDataset() {
        XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();

        int [] classObject  =new int[] {-70,-56,-45,-80,-47,-55,-80,-50,-75,-85,-35,-45};//Signal strength receiver from each access point

        for (int j=0;j<classObject.length;j++){
        values.add(new int[] { classObject[j]}); //every serie will concern an access point and contain one RSSI
        }

        final int nr = classObject.length;
        ArrayList<String> legendTitles = new ArrayList<String>();
        for (int k = 0; k < classObject.length; k++) {
             legendTitles.add("Sales"+k);//every serie will have a legend
        }
        SERIES_NR = classObject.length ;//number of access point
      for (int i = 0; i < SERIES_NR; i++) {//Loop for every series
            CategorySeries series = new CategorySeries(legendTitles.get(i));
            int[] v = values.get(i);
            int seriesLength = v.length;
            dataset.addSeries(series.toXYSeries());

                       for (int k = 0; k < seriesLength; k++) {
                 Log.i("STOOP SERIES_NR",SERIES_NR+"");
                 Log.i("STOOP ii",i+"");
                 Log.i("STOOP",k+"");
                 Log.i("STOOP",v[k]+"");
                 Log.i("STOOP",v[k] / 10+"");
                /* XYSeries tempSerie = dataset.getSeriesAt(i);
                    tempSerie.add(i, 40 - v[k] %10);*/

                switch (v[k] / 10){
                case -8 :
                    //series.add(classObject[k]);
                    if (v[k] %10 == 0)
                        //series.add(40);
                    {XYSeries tempSerie = dataset.getSeriesAt(i);
                    tempSerie.add(i, 40);
                    }
                    else 
                    //series.add(40 - v[k] %10);
                    {XYSeries tempSerie = dataset.getSeriesAt(i);
                    tempSerie.add(i, 40 - v[k] %10);
                    }   

                    break;
                case -7 :
                    //series.add(classObject[k]);
                    if (v[k] %10 == 0)
                        {
                        XYSeries tempSerie = dataset.getSeriesAt(i);
                      tempSerie.add(i, 50);
                        tempSerie.addAnnotation("text *** "+i, 0, 50);

                        }

                    else // EDITED 
                    //series.add(50 - v[k] %10);
                        {XYSeries tempSerie = dataset.getSeriesAt(i);
                        // ERROR LINE 100 tempSerie.add(i, 7.5,50 - v[k] %10);


 tempSerie.add(i,50 - v[k] %10);//right line 
                //  series.toXYSeries().add(7.5,50 - v[k] %10);
                        }

                    break;
                case -6 :
                    //series.add(classObject[k]);
                    if (v[k] %10 == 0)
                        //series.add(60);
                    {XYSeries tempSerie = dataset.getSeriesAt(i);
                    tempSerie.add(i, 60);

                    }
                    else
                    //series.add(60 - v[k] %10);
                    {XYSeries tempSerie = dataset.getSeriesAt(i);
                    tempSerie.add(i, 60 - v[k] %10);

                    }

                    break;

                case -5 :
                    //series.add(classObject[k]);
                    if (v[k] %10 == 0)
                        //series.add(70);
                    {XYSeries tempSerie = dataset.getSeriesAt(i);
                    tempSerie.add(i, 70);

                    }
                    else
                    //series.add(70 - v[k] %10);
                    {XYSeries tempSerie = dataset.getSeriesAt(i);
                    tempSerie.add(i, 70 - v[k] %10);

                    }

                    break;
                case -4 :
                    //series.add(classObject[k]);
                    if (v[k] %10 == 0)
                        //series.add(80);
                    {XYSeries tempSerie = dataset.getSeriesAt(i);
                    tempSerie.add(i, 80);

                    }

                    else
                    {XYSeries tempSerie = dataset.getSeriesAt(i);
                    tempSerie.add(i, 80 - v[k] %10);
                    tempSerie.addAnnotation("text"+i, i, 80 - v[k] %10);

                    }


                    break;
                case -3 :
                    //series.add(classObject[k]);
                    if (v[k] %10 == 0)
                    {XYSeries tempSerie = dataset.getSeriesAt(i);
                    tempSerie.add(i, 90);

                    }
                    else
                    //series.add(90 - v[k] %10);
                    {XYSeries tempSerie = dataset.getSeriesAt(i);
                    tempSerie.add(i, 90 - v[k] %10);

                    }

                    break;


                }


           }



        }
        return dataset;
    }
.我试图手动运行代码,但没有发现错误,可能我没有看到。 这里是跑步停止日志。我

04-11 08:58:24.415: I/STOOP(17738): -47
04-11 08:58:24.415: I/STOOP(17738): -4
04-11 08:58:24.415: I/STOOP SERIES_NR(17738): 12
04-11 08:58:24.415: I/STOOP ii(17738): 5
04-11 08:58:24.415: I/STOOP(17738): 0
04-11 08:58:24.415: I/STOOP(17738): -55
04-11 08:58:24.415: I/STOOP(17738): -5
04-11 08:58:24.416: I/STOOP SERIES_NR(17738): 12
04-11 08:58:24.416: I/STOOP ii(17738): 6
04-11 08:58:24.416: I/STOOP(17738): 0
04-11 08:58:24.416: I/STOOP(17738): -80
04-11 08:58:24.416: I/STOOP(17738): -8
04-11 08:58:24.416: I/STOOP SERIES_NR(17738): 12
04-11 08:58:24.416: I/STOOP ii(17738): 7
04-11 08:58:24.416: I/STOOP(17738): 0
04-11 08:58:24.416: I/STOOP(17738): -50
04-11 08:58:24.416: I/STOOP(17738): -5
04-11 08:58:24.416: I/STOOP SERIES_NR(17738): 12
04-11 08:58:24.416: I/STOOP ii(17738): 8
04-11 08:58:24.416: I/STOOP(17738): 0
04-11 08:58:24.416: I/STOOP(17738): -75
04-11 08:58:24.417: I/STOOP(17738): -7
这是我遇到的一个例外:


非常感谢您的帮助。谢谢。

您能帮我们确定哪一行是TruitonAChartEngineActivity.java的第100行吗?在java.lang.IndexOutOfBoundsException上放置一个已捕获和未捕获的断点,并在debugger.values.addnew int[]{classObject[j]}中运行;看起来很奇怪,因为classObject是一维数组。后面的int[]v=values.geti;可能返回的不是您期望的。调试这个。我将感谢任何帮助-我的帮助是这个建议-学习使用调试器。认真地现在是开始的好时机。尤其是你花了/浪费了很多时间寻找这个bug。这只是补充Stephen的评论。学习使用调试器将使您成为一名更高效的程序员。这是程序员可以学习的最重要的技能之一。而且它应该在每一门编程入门课程中尽早教授。可悲的是,事实并非如此。
04-11 08:58:24.415: I/STOOP(17738): -47
04-11 08:58:24.415: I/STOOP(17738): -4
04-11 08:58:24.415: I/STOOP SERIES_NR(17738): 12
04-11 08:58:24.415: I/STOOP ii(17738): 5
04-11 08:58:24.415: I/STOOP(17738): 0
04-11 08:58:24.415: I/STOOP(17738): -55
04-11 08:58:24.415: I/STOOP(17738): -5
04-11 08:58:24.416: I/STOOP SERIES_NR(17738): 12
04-11 08:58:24.416: I/STOOP ii(17738): 6
04-11 08:58:24.416: I/STOOP(17738): 0
04-11 08:58:24.416: I/STOOP(17738): -80
04-11 08:58:24.416: I/STOOP(17738): -8
04-11 08:58:24.416: I/STOOP SERIES_NR(17738): 12
04-11 08:58:24.416: I/STOOP ii(17738): 7
04-11 08:58:24.416: I/STOOP(17738): 0
04-11 08:58:24.416: I/STOOP(17738): -50
04-11 08:58:24.416: I/STOOP(17738): -5
04-11 08:58:24.416: I/STOOP SERIES_NR(17738): 12
04-11 08:58:24.416: I/STOOP ii(17738): 8
04-11 08:58:24.416: I/STOOP(17738): 0
04-11 08:58:24.416: I/STOOP(17738): -75
04-11 08:58:24.417: I/STOOP(17738): -7
    04-11 08:58:24.431: W/dalvikvm(17738): threadid=1: thread exiting with uncaught exception (group=0x419559a8)
04-11 08:58:24.439: E/AndroidRuntime(17738): FATAL EXCEPTION: main
04-11 08:58:24.439: E/AndroidRuntime(17738): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.truitonachartengine/com.example.truitonachartengine.TruitonAChartEngineActivity}: java.lang.IndexOutOfBoundsException: Invalid index 8, size is 0
04-11 08:58:24.439: E/AndroidRuntime(17738):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2343)
04-11 08:58:24.439: E/AndroidRuntime(17738):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2395)
04-11 08:58:24.439: E/AndroidRuntime(17738):    at android.app.ActivityThread.access$600(ActivityThread.java:162)
04-11 08:58:24.439: E/AndroidRuntime(17738):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1364)
04-11 08:58:24.439: E/AndroidRuntime(17738):    at android.os.Handler.dispatchMessage(Handler.java:107)
04-11 08:58:24.439: E/AndroidRuntime(17738):    at android.os.Looper.loop(Looper.java:194)
04-11 08:58:24.439: E/AndroidRuntime(17738):    at android.app.ActivityThread.main(ActivityThread.java:5371)
04-11 08:58:24.439: E/AndroidRuntime(17738):    at java.lang.reflect.Method.invokeNative(Native Method)
04-11 08:58:24.439: E/AndroidRuntime(17738):    at java.lang.reflect.Method.invoke(Method.java:525)
04-11 08:58:24.439: E/AndroidRuntime(17738):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
04-11 08:58:24.439: E/AndroidRuntime(17738):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
04-11 08:58:24.439: E/AndroidRuntime(17738):    at dalvik.system.NativeStart.main(Native Method)
04-11 08:58:24.439: E/AndroidRuntime(17738): Caused by: java.lang.IndexOutOfBoundsException: Invalid index 8, size is 0
04-11 08:58:24.439: E/AndroidRuntime(17738):    at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:251)
04-11 08:58:24.439: E/AndroidRuntime(17738):    at java.util.ArrayList.add(ArrayList.java:143)
04-11 08:58:24.439: E/AndroidRuntime(17738):    at org.achartengine.util.IndexXYMap.put(IndexXYMap.java:42)
04-11 08:58:24.439: E/AndroidRuntime(17738):    at org.achartengine.model.XYSeries.add(XYSeries.java:155)
04-11 08:58:24.439: E/AndroidRuntime(17738):    at com.example.truitonachartengine.TruitonAChartEngineActivity.getTruitonBarDataset(TruitonAChartEngineActivity.java:100)
04-11 08:58:24.439: E/AndroidRuntime(17738):    at com.example.truitonachartengine.TruitonAChartEngineActivity.onCreate(TruitonAChartEngineActivity.java:37)
04-11 08:58:24.439: E/AndroidRuntime(17738):    at android.app.Activity.performCreate(Activity.java:5122)
04-11 08:58:24.439: E/AndroidRuntime(17738):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1081)
04-11 08:58:24.439: E/AndroidRuntime(17738):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2307)
04-11 08:58:24.439: E/AndroidRuntime(17738):    ... 11 more