android中的Arrayindexoutofbound错误,在插入数据库时如何解决?

android中的Arrayindexoutofbound错误,在插入数据库时如何解决?,android,performance,android-sqlite,Android,Performance,Android Sqlite,好的,正如你们中的一些人提到的,我确实删除了st4和st5语句,它运行了一段时间,但现在我得到了索引2的相同错误现在我的数组长度是2,但你们之前都建议它是3,这里有什么问题,我遗漏了什么吗???/这表明您的CSV文件:/mnt/sdcard/content.CSV,或者CSV文件中至少有一行只有三列 请参阅:java.lang.ArrayIndexOutOfBoundsException:length=3;index=3表示数组中只有3个项目,并且您的访问项目位于索引3处(最大值为2) 请不要尝

好的,正如你们中的一些人提到的,我确实删除了st4和st5语句,它运行了一段时间,但现在我得到了索引2的相同错误现在我的数组长度是2,但你们之前都建议它是3,这里有什么问题,我遗漏了什么吗???/

这表明您的CSV文件:
/mnt/sdcard/content.CSV
,或者CSV文件中至少有一行只有三列

请参阅:
java.lang.ArrayIndexOutOfBoundsException:length=3;index=3
表示数组中只有3个项目,并且您的访问项目位于索引3处(最大值为2)

请不要尝试:

02-21 16:27:54.308: E/AndroidRuntime(12511): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.webdata/com.example.webdata.MainActivity}: java.lang.ArrayIndexOutOfBoundsException: length=3; index=3

异常表示数组包含3个元素,但您正在尝试访问5个元素

java.lang.ArrayIndexOutOfBoundsException: length=3; index=3*emphasized text*
无法工作,因为数组行的长度为3

大多数人都告诉您完全使用第3和第4个字段来删除,但是如果您想使用默认值,那么您应该为此添加一个检查,并在没有相应数据的情况下在数据库中插入空数据

大概是这样的:

st4= row[3]; 

显然,你的一行的长度是3,而不是5当你知道答案时,它总是显而易见的。。如果对他来说这是显而易见的,OP会发布吗?我的文件有5列,正如我所看到的,正如你提到的,我尝试了上面提到的,但仍然出现相同的错误。你能解释一下为什么你可以发布更多的堆栈跟踪,也可以通过代码进行调试,并发布哪行是断开的吗,您需要确保每一行都包含CSV文件中的所有5列,如果不是,您需要在从每列检索数据之前检查数组的长度现在我正在获取连接池已关闭这意味着什么?这是一个完全不同的错误。这意味着有一个连接池设置,可能是针对数据库的,但它已关闭,您正试图从中检索连接。正如我所说的,这是一个完全不同的问题/错误
values.put(DatabaseHandler.Column4,st4);
values.put(DatabaseHandler.Column5,st5);
java.lang.ArrayIndexOutOfBoundsException: length=3; index=3*emphasized text*
st4= row[3]; 
if (row[3] != null) {
    st3 = row[3];
} else {
    st3 = "";
}