繁体   English   中英

空指针异常 Android

[英]NullPointer Exception Android

在光标移动到下一个值时,它会抛出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();
      }

日志猫

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)

首先,在 while 循环之前跳过cursor.moveToFirst()行。 它必须像下面的代码一样。

Cursor cRDR1 = myDB.rawQuery("SELECT * FROM RDR1 WHERE SyncStatus='no' AND OrderID='"+c.getString(1)+"'", null);
                       if( cursor.moveToFirst()){ // return true if the first elements is exist
                        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);
                          }
                        }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM