Котлин п должен быть позитивным - PullRequest
0 голосов
/ 04 мая 2019

Я получаю эту ошибку, когда трассировка стека говорит: Вызывается: java.lang.IllegalArgumentException: n должно быть положительным. И это показывает ошибку в этих строках. В уроках, которые я изучаю, чтобы сделать это приложение, они исправили эту проблему с: if (куски. Размер> = 2). Но очевидно, это не работает как-то.

 private fun readDictionaryfile(){
        val reader = Scanner(resources.openRawResource(R.raw.recidva))
        while (reader.hasNextLine()){
            val line = reader.nextLine()
            Log.d("Mihajlo","the line is:$line")
            val pieces = line.split("\t")
            if (pieces.size >= 2){
            words.add(pieces[0])
            wordToDefn.put(pieces[0],pieces[1])
            }
        }
    }
private fun setupList() {
        val rand = Random()
        val index = rand.nextInt(words.size)
        val randomWor = words[index]
        randomWord.text = randomWor

        defn.clear()
        defn.add(wordToDefn[randomWor]!!)
        words.shuffle()
        for (otherWord in words.subList(0,4)){
            if (otherWord == randomWor || defn.size > 5){
                continue
            }
            defn.add(wordToDefn[otherWord]!!)
        }
        defn.shuffle()

Ответы [ 2 ]

1 голос
/ 04 мая 2019

Вы пытаетесь сгенерировать случайное число из 0, которое меньше 0. Дайте ему положительное число, чтобы оно могло дать вам ощутимый результат.Проверьте слова. Размер должен быть больше 0

.
0 голосов
/ 05 мая 2019

Я полагаю, что ваш words.size дает 0, так как слова пусты.Затем вы пытаетесь случайным образом использовать это значение -> 0. Вы не можете сделать это, вы должны случайным образом 1 или выше.Вот почему вы получаете эту ошибку.

Просто проверьте, не являются ли слова не пустыми, а затем попробуйте случайным образом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...