我创建了一个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);
答案 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);