我是初学者,这是我的第一个Android应用程序,我遇到了这个问题
Failure 21 "Out of memory" on 0x0 when preparing 'update clients set lat=19.124566,lng=-103.23546 where id=1'
在我的表结构中,我将lat和lng设置为DOUBLE。
我读过它并且有人说SD卡需要更大,但是我将模拟器的SD卡设置为5Gb,我使用的是Android 1.6希望你能帮助我。谢谢= D
soome code here。
try {
dir1 = new Geocoder(this).getFromLocationName(dir_1, 1);
Address address = dir1.get(0);
if(address.hasLatitude() && address.hasLongitude()){
double selectedLat = address.getLatitude();
double selectedLng = address.getLongitude();
adapter.command("UPDATE clientes set lat_1="+selectedLat*1000000+",lng_1="+selectedLng*1000000+" WHERE id="+idCliente);
Log.e("geo","location1: "+selectedLat+" : "+selectedLng);
}
} catch (IOException e) {
// TODO Auto-generated catch block
Log.e("error","Error en la direccion 1");
e.printStackTrace();
}
答案 0 :(得分:0)
此错误消息似乎具有误导性,可能与存储空间或内存无关。此post表示当您在SQL中出现错误时会发生这种情况。
如果没有看到某些代码,很难提供更具体的建议。你可以张贴一些吗?
答案 1 :(得分:0)
所以我猜你的命令方法只是将该字符串放入execSql()方法。 您需要在字符串中追加分号以执行,因此:
adapter.command("UPDATE clientes set lat_1="+selectedLat*1000000+",lng_1="+selectedLng*1000000+" WHERE id="+idCliente+";");