【发布时间】:2020-01-29 10:18:32
【问题描述】:
我正在开发一个地图应用程序,但是当我尝试从 Firebase 获取 latlng 时不断收到此错误,我不明白,也不知道如何解决。
错误:
java.lang.IndexOutOfBoundsException: 无效索引 0,大小为 0 在 java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255) 在 java.util.ArrayList.get(ArrayList.java:308) 在 fr.divdev.maphadev.MapsActivity.initMarkers(MapsActivity.java:120) 在 fr.divdev.maphadev.MapsActivity.onMapReady(MapsActivity.java:74) 在 com.google.android.gms.maps.zzak.zza(未知来源) 在 com.google.android.gms.maps.internal.zzaq.dispatchTransaction(未知 资源) 在 com.google.android.gms.internal.maps.zzb.onTransact(未知 来源)
getLocationList() 代码:
public List < Location > getLocationList() {
final List < Location > list = new ArrayList < > ();
DatabaseReference f_database = FirebaseDatabase.getInstance().getReference().child("location");
f_database.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot child:
dataSnapshot.child("Loisir").child("lieu").child("latlng").getChildren()) {
double lat = Double.parseDouble(child.child("latitude").getValue().toString());
double lng = Double.parseDouble(child.child("longitude").getValue().toString());
list.add(new Location("location", new LatLng(lat, lng)));
Log.e("erreur", "********");
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
return list;
}
【问题讨论】:
-
哪一行有例外?
-
显示第 255 行。
-
这不是您的异常代码,因为您没有在此函数中访问您的列表。当您从函数
getLocationList访问返回的列表时会出现此异常 -
第 255 行是 ArrayList.class....
-
私有 void fastRemove(int var1) { ++this.modCount; int var2 = this.size - var1 - 1; if (var2 > 0) { System.arraycopy(this.elementData, var1 + 1, this.elementData, var1, var2); }
标签: android firebase google-maps firebase-realtime-database