内存不足双更新sqlite android

时间:2011-06-14 00:36:12

标签: android sqlite memory

我是初学者,这是我的第一个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();
    }

2 个答案:

答案 0 :(得分:0)

此错误消息似乎具有误导性,可能与存储空间或内存无关。此post表示当您在SQL中出现错误时会发生这种情况。

如果没有看到某些代码,很难提供更具体的建议。你可以张贴一些吗?

答案 1 :(得分:0)

所以我猜你的命令方法只是将该字符串放入execSql()方法。 您需要在字符串中追加分号以执行,因此:

adapter.command("UPDATE clientes set lat_1="+selectedLat*1000000+",lng_1="+selectedLng*1000000+" WHERE id="+idCliente+";");