2013-07-29 3 views
0

Я получаю исключение нулевого указателя при доступе к переменной. Я сделал один и тот же код пару раз, и он отлично работает. Но здесь я не могу понять, что именно происходит неправильно. Я понимаю, что где-то есть простой глюк. Спасибо за любую помощь!NullPointerException, полученное при доступе к переменной

Heres код:

public void getSumsForPie(PieGraph pieGraph) 
    { 
    Cursor reportSumCursor = ourDatabase.rawQuery("SELECT SUM(total_cost) FROM food_table ", null); 
      if(reportSumCursor!=null && reportSumCursor.getCount()>0) 
      { 
       reportSumCursor.moveToFirst(); 
       double getTotalFuelCostSum = reportCursor.getDouble(0); // Here the nullPointerException is thrown 
       pieGraph.setFoodTotalSum(getTotalFoodCostSum); 
      } 
} 
+0

кажется что ваш reportCursor имеет значение NULL. – Brtle

+1

npe => переменная имеет значение null. A/post stacktrace. B/указать, какая строка вызывает проблему. C/запустить в режиме отладки, чтобы просмотреть содержимое переменных в области видимости во время сбоя. – njzk2

+4

вы называете 'reportCursor', когда вы, вероятно, имеете в виду' reportSumCursor' – njzk2

ответ

0

проверить, если reportCursor != null && pieGraph != null на ваш, если заявление, так что вы не получите нулевой ссылочный исключение:

public void getSumsForPie(PieGraph pieGraph) 
{ 
    Cursor reportSumCursor = ourDatabase.rawQuery("SELECT SUM(total_cost) FROM food_table ", null); 

    if(reportSumCursor!=null && reportSumCursor.getCount()>0 && 
     reportCursor != null && pieGraph != null) 
    { 
     reportSumCursor.moveToFirst(); 
     double getTotalFuelCostSum = reportCursor.getDouble(0); // Here the nullPointerException is thrown 
     pieGraph.setFoodTotalSum(getTotalFoodCostSum); 
    } 
} 
0

Попробуйте это:

public void getSumsForPie(PieGraph pieGraph) 
{ 
     SQLiteDatabase db = this.getReadableDatabase(); 
     Cursor reportSumCursor = db.query("SELECT SUM(total_cost) FROM food_table ", null); 
     if(reportSumCursor!=null && reportSumCursor.getCount()!= 0) 
     { 
      reportSumCursor.moveToFirst(); 
      double getTotalFuelCostSum = reportSumCursor.getDouble(0); 
      pieGraph.setFoodTotalSum(getTotalFoodCostSum); 
     } 
} 
Смежные вопросы