Java Kotlin n必须为正碰撞
我得到了一个错误,堆栈跟踪显示: 原因:java.lang.IllegalArgumentException:n必须为正。 这行代码显示了bug。在我学习制作这个应用程序的教程中,他们修复了这个问题:if(pieces.size>=2)。但是 很明显,它不起作用了Java Kotlin n必须为正碰撞,java,android,kotlin,Java,Android,Kotlin,我得到了一个错误,堆栈跟踪显示: 原因:java.lang.IllegalArgumentException:n必须为正。 这行代码显示了bug。在我学习制作这个应用程序的教程中,他们修复了这个问题:if(pieces.size>=2)。但是 很明显,它不起作用了 private fun readDictionaryfile(){ val reader = Scanner(resources.openRawResource(R.raw.recidva)) whi
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()
您正在尝试从0生成一个小于0的随机数。给它一个正数,这样它可以给你一个合理的结果。检查words.size它应该大于0我猜你的words.size给出0,因为单词是空的。然后您尝试使用该值->0进行随机操作。你不能这样做,你必须随机选择1或更高。这就是为什么会出现这个错误
只需检查单词是否为空,然后尝试随机选择 它显示了这几行上的错误,到底是哪一行?val index=rand.nextInt(words.size)@MihajloMilosevic您的word.size返回0,因为您的单词列表为空。您可以将第一个数据添加到单词列表中,然后尝试生成random@MihajloMilosevic如果这对您有效,请检查为接受答案