【发布时间】:2014-04-09 10:37:31
【问题描述】:
在光标移动到下一个值时,它会抛出 NullPointerException(在第一个值上它运行完全正确)。
try {
myDB = this.cordova.getActivity().openOrCreateDatabase(Path, 0 , null);
/*retrieve data from database */
//sQLITE qUERY AND RESULTS STORED IIN CURSOR
Cursor c = myDB.rawQuery("SELECT * FROM " + TableName + " WHERE SyncStatus='no'", null);
//int Column1 = c.getColumnIndex("OrderID");
while (c.moveToNext()) {
// Initialize soap request + add parameters
url="http://10.1.1.239/RMS/Service.asmx/InsertORDR?jsoncallback=json&ParentID="+c.getString(2).trim()+"&CustomerID=4000010000100001&RouteID="+c.getString(4).trim()+"&RouteDay="+c.getString(5).trim()+"&WhsID="+c.getString(6).trim()+"&VehicleID=1&PrefDriverID=1&PrefSalesPersonID="+c.getString(9).trim()+"&DocType="+c.getString(10).trim()+"&OrderDate="+c.getString(11).trim()+"&OrderTime="+c.getString(12).trim()+"&ScheduleType="+c.getString(16).trim()+"&OrderType="+c.getString(17).trim()+"&ItemCost="+c.getString(18).trim()+"&SubTotal="+c.getString(25).trim()+"&PaymtMode="+c.getString(26).trim()+"&Currency="+c.getString(31).trim()+"&Notes="+c.getString(32).trim()+"&CreatedDate="+c.getString(34).trim()+"&CreatedBy="+c.getString(35).trim()+"&UpdatedDate="+c.getString(36).trim()+"&UpdatedBy="+c.getString(37).trim()+"&Status="+c.getString(38).trim()+"&Order_Status_Note="+c.getString(41).trim()+"";
// Making a request to url and getting response
String jsonStr = sh.makeServiceCall(url, ServiceHandler.GET);
if(jsonStr != null){
Cursor cRDR1 = myDB.rawQuery("SELECT * FROM RDR1 WHERE SyncStatus='no' AND OrderID='"+c.getString(1)+"'", null);
while (cRDR1.moveToNext()) {
url1="http://10.1.1.239/RMS/Service.asmx/InsertRDR1?jsoncallback=json&ParentID="+cRDR1.getString(2).trim()+"&ItemID="+cRDR1.getString(4).trim()+"&Box="+cRDR1.getString(6).trim()+"&Patti="+cRDR1.getString(8).trim()+"&Packet="+cRDR1.getString(9).trim()+"&UnitPrice="+cRDR1.getString(10).trim()+"&TotalPacket="+cRDR1.getString(11).trim()+"&TotalCost="+cRDR1.getString(12).trim()+"&AvlQty="+cRDR1.getString(13).trim()+"&Notes="+cRDR1.getString(16).trim()+"";
String jsonStrRDR1 = sh.makeServiceCall(url1, ServiceHandler.GET);
Log.e("Success", jsonStrRDR1);
}
}
}
}
catch(Exception e) {
Log.e("Error", "Error", e);
} finally {
if (myDB != null)
myDB.close();
}
LogCat
04-09 10:05:21.576: E/Success(7033): json({'Result': '1'})
04-09 10:05:26.626:E/Success(7033): json({'Result': '1'})
04-09 10:05:36.778: E/Success(7033): json({'Result': '1'})
04-09 10:05:51.556: E/Success(7033): json({'Result': '1'})
04-09 10:07:18.966: E/Error(7033): Error
04-09 10:07:18.966: E/Error(7033): java.lang.NullPointerException
04-09 10:07:18.966: E/Error(7033): at com.rms.vc.DataSync.execute(DataSync.java:66)
04-09 10:07:18.966: E/Error(7033): at org.apache.cordova.api.CordovaPlugin.execute(CordovaPlugin.java:66)
【问题讨论】:
-
你可以在这里发布你的 LogCat 吗?
-
在
while循环开始之前,写这个cursor.moveToFirst(); -
04-09 10:05:21.576: E/Success(7033): json({'Result': '1'}) 04-09 10:05:26.626: E/Success(7033 ): json({'Result': '1'}) 04-09 10:05:36.778: E/Success(7033): json({'Result': '1'}) 04-09 10:05:51.556 :E /成功(7033):json({'Result':'1'})04-09 10:07:18.966:E /错误(7033):错误04-09 10:07:18.966:E /错误( 7033): java.lang.NullPointerException 04-09 10:07:18.966: E/Error(7033): at com.rms.vc.DataSync.execute(DataSync.java:66) 04-09 10:07:18.966: E/错误(7033):在 org.apache.cordova.api.CordovaPlugin.execute(CordovaPlugin.java:66)
-
@Kedarnath:它无法正常工作,抛出 Uri 解析异常
-
这意味着它正在工作,现在你的 Uri 有问题。可能你的 Uri 中有一个空格,所以我建议你对你的 Uri 进行编码。