Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.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版本上崩溃_Java_Android - Fatal编程技术网

Java 在较新的android版本上崩溃

Java 在较新的android版本上崩溃,java,android,Java,Android,我已经做了一个应用程序。在emulator Nexus 5x API26 x86中运行良好。 然而,它在其他android版本中崩溃运行 撞车1 LGE V20(elsa),4096MB内存,安卓7.0 java.lang.IllegalArgumentException:at java.util.Random.nextInt (Random.java:391)在 myessentialoils.reprogramyourmind.MyService$TimeDisplayTimerTask$

我已经做了一个应用程序。在emulator Nexus 5x API26 x86中运行良好。 然而,它在其他android版本中崩溃运行

撞车1 LGE V20(elsa),4096MB内存,安卓7.0

java.lang.IllegalArgumentException:at java.util.Random.nextInt (Random.java:391)在 myessentialoils.reprogramyourmind.MyService$TimeDisplayTimerTask$1.run (MyService.java:92)

有人能浏览一下我的java类并告诉我如何优化它们吗

    private class TimeDisplayTimerTask extends TimerTask {
        @Override
        public void run() {

                mHandler.post(new Runnable() {
                @Override
            //this is the line 92 crash, randomStr
                public void run() {
                    String randomStr = array[new Random().nextInt(array.length)];

                    final Toast Notify = Toast.makeText(getApplicationContext(),randomStr, Toast.LENGTH_LONG);
                    TextView toastMessage = (TextView) Notify.getView().findViewById(android.R.id.message);
                    toastMessage.setTextColor(Color.RED);
                    toastMessage.setTextSize(21);
                    Notify.getView().setBackgroundColor(Color.TRANSPARENT);
                    Notify.setGravity(Gravity.CENTER, 0, 0);
                    Notify.show();

                    Handler cancelToast = new Handler();
                    cancelToast.postDelayed(new Runnable() {
                        @Override
                        public void run() {
                            Notify.cancel();
                        }
                    }, DISPLAYTIME);

                }
            });
        }
    }
谢谢你的评论。 这也是我的想法。很可能array.length为0或未被传递


因此,我的解决方案是执行一个检查,如果长度=0,则中断代码。

出于某种原因,数组长度可能为0。请提供有关数组的信息[new Random().nextInt(array.length)];线