将数据插入数据库时​​logcat出错

时间:2015-12-29 08:04:18

标签: android mysql android-layout android-intent

我创建了一个Android应用,可以将纬度和经度插入到本地创建的数据库中。但是当我单击位置按钮时,它会在行NSString上给出一些logcat错误。单击位置按钮时,应将纬度和经度传递给数据库。有人可以帮我解决这个问题吗?

enum /// create an enum with all values { sizeBytes = 1, sizeKb = 2, sizeMb, sizeGB }; /// create an array and fill the enum values manually. Enum indexes should match array indexes NSMutableArray* _sizeList = [NSMutableArray new]; [_sizeList addObject:@"BYTES"]; [_sizeList addObject:@"KB"]; [_sizeList addObject:@"MB"]; [_sizeList addObject:@"GB"]; /// do switch case as gven below : **sizeSelector** is popup button switch ([sizeSelector indexOfSelectedItem]) { case sizeGB: //do the code break; case sizeMb: //do the code break; //......so on default: break; } 是:

src

这是我的logcat:

46

这是我的主要46

long result = dbm.insert("location",null,cv);

4 个答案:

答案 0 :(得分:2)

正确实施此方法:

   private SQLiteDatabase getWritableDatabase() {
        // TODO Auto-generated method stub
        return null;
    }

此方法返回null

 SQLiteDatabase dbm = this.getWritableDatabase();

因此dbm为null,因此在第46行获得空指针异常。

12-29 16:19:55.700: E/AndroidRuntime(1319):     at com.example.gpstracking.AndroidGPSTrackingActivity$1.onClick(AndroidGPSTrackingActivity.java:46)

按照以下链接了解,如何在db

中读/写

http://www.androidhive.info/2011/11/android-sqlite-database-tutorial/

答案 1 :(得分:1)

  

12-29 16:19:55.650:W / dalvikvm(1319):threadid = 1:线程退出   未捕获的异常(组= 0xb39feba8)12-29 16:19:55.700:   E / AndroidRuntime(1319):致命异常:主12-29 16:19:55.700:   E / AndroidRuntime(1319):处理:com.example.gpstracking,PID:1319   12-29 16:19:55.700:E / AndroidRuntime(1319):   显示java.lang.NullPointerException

我认为问题在这里

delegate

为什么要发送peripheral:didUpdateNotificationStateForCharacteristic:error: ??

结果 long result = dbm.insert("location",null,cv); 出现了。

答案 2 :(得分:0)

检查一下

document.getElementById("createproduct").onsubmit=function(e)
{
    e.preventDefault();

    var returnedCompany = document.getElementById("companynameId");
    var storedCompany = returnedCompany.options[returnedCompany.selectedIndex].value;
    var hiddenCompanyId = document.getElementsByName('hiddenCompanyName')[0];

    document.createproduct.hiddenCompanyId.value = storedCompany;
    document.forms["createproduct"].submit();
};

gps为null因此在后台任务中运行GpsTracker(使用了Asyntask),如果gps不为null则 检查一下 -

gps = new GPSTracker(AndroidGPSTrackingActivity.this);

答案 3 :(得分:0)

GPS无法获得经度和纬度。只返回lat lng的空值。

仅托耳lat和lng的值。

double latitude = gps.getLatitude();
                    double longitude = gps.getLongitude();

                   // SQLiteDatabase dbm = this.getWritableDatabase();
                   // ContentValues cv = new ContentValues();

                   // cv.put("latitude", gps.getLatitude());
                   // cv.put("longitude", gps.getLongitude());


                   // long result = dbm.insert("location",null,cv);



                   Toast.makeText(getApplicationContext(), "Your Location is - \nLat: " + String.valueOf(latitude) + "\nLong: " + String.valueOf(longitude), Toast.LENGTH_LONG).show();

发送字符串值不是双倍。

String lat=String.valueOf(latitude);
String lng= String.valueOf(longitude);
相关问题