当我第二次运行我的应用程序时,它将给出此错误。如果我清理我的项目,则它可以正常运行。而且我还启动了新的模拟器,然后我的应用程序运行了,但是却没有连续运行。
在以下位置返回null java.lang.ArrayIndexOutOfBoundsException
com.warriorpoint.androidxmlsimple.SplashActivity.loadFeed(SplashActivity.java:140)
在
com.warriorpoint.androidxmlsimple.SplashActivity.access $ 0(SplashActivity.java:106)
我的代码在这里
private void loadFeed(){
try{
BaseFeedParser parser = new BaseFeedParser();
messages = parser.parse();
titles = new ArrayList<String>(messages.size());
description = new ArrayList<String>(messages.size());
link = new ArrayList<String>(messages.size());
arrays=new String[messages.size()][];
final List<String> imageURL=new ArrayList<String>(1);
imageURLAmit=new ArrayList<String>(messages.size());
for (com.warriorpoint.androidxmlsimple.Message msg : messages){
Spanned title=Html.fromHtml(msg.getTitle());
titles.add(title.toString());
link.add(msg.getLink().toString());
Spanned data=Html.fromHtml(msg.getDescription(),new ImageGetter() {
public Drawable getDrawable(String source) {
// TODO Auto-generated method stub
imageURL.add(source);
return null;
}
},null);
if(imageURL.size()!=0){
imageURLAmit.add(imageURL.get(0));
}else{
imageURLAmit.add("http://blog.kevinlearynet.netdna-cdn.com/files/applausemeter-300x200.jpg");
}
System.out.println("Position b4 loop : "+position);
int j;
arrays[position]=imageURL.toArray(new String[imageURL.size()]);
System.out.println("2D array colomn length : "+arrays[position].length);
position++;
System.out.println("Position afeter loop : "+position);
imageURL.clear();
description.add( data.toString());
System.out.println("End addition");
}
System.out.println("Final Image URL lenght : "+imageURL.size());
} catch (Throwable t){
Log.e("AndroidNews",t.getMessage(),t);
}
}
}
最佳答案
看起来position
第一次是0,但是第二次是1。如果您的数组大小为1,则第二次运行将抛出您得到的异常。