簡體   English   中英

空對象引用錯誤時出現'java.lang.String android.content.Context.getPackageName()'

[英]'java.lang.String android.content.Context.getPackageName()' on a null object reference error

我有一個充滿警報的數據庫,用於創建警報的服務在啟動時啟動,但是一旦創建循環便崩潰。 錯誤是:

“ java.lang.NullPointerException:嘗試在空對象引用上調用虛擬方法'java.lang.String android.content.Context.getPackageName()'”

編輯:

碼:

public class NotificationServiceStartOnBoot extends Service {

    UserDbHelper userDbHelper;
    SQLiteDatabase sqLiteDatabase;
    Context context;
    Cursor cursor;
    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }

    @Override
    public void onCreate() {
        super.onCreate();
        Log.e("SERVICE", "STARTED...");
        userDbHelper = new UserDbHelper(getApplicationContext());
        sqLiteDatabase = userDbHelper.getReadableDatabase();
        cursor = userDbHelper.getNotifications(sqLiteDatabase);
        Log.e("SERVICE", "About to begin loop...");
        if(cursor.moveToFirst())
        {
            Log.e("SERVICE", "if statement accepted...");
            do
            {
                Log.e("SERVICE", "notification loop begun...");
                String date,UID;

                date = cursor.getString(0);
                UID = cursor.getString(1);
               // Long notificationDate = Long.valueOf(date);
                Long notificationUID = Long.valueOf(UID);


                long milliSeconds= Long.parseLong(date);
                //System.out.println(milliSeconds);

                Calendar calendar = Calendar.getInstance();
                calendar.setTimeInMillis(milliSeconds);


                final int _id = (int) System.currentTimeMillis();
                Intent alarmIntent = new Intent(context, AlarmReceiver.class);
                alarmIntent.putExtra("nID", notificationUID);
                 //make sure the intent have id's
                PendingIntent pendingIntent = PendingIntent.getBroadcast(context, _id,  alarmIntent , 0);

                AlarmManager alarmManager = (AlarmManager)context.getSystemService(ALARM_SERVICE);
                alarmManager.set(AlarmManager.RTC, calendar.getTimeInMillis(), pendingIntent);

            }while (cursor.moveToNext());
        }
        Log.e("SERVICE", "outside if statement...");

        //NotificationGenerator.generateNotification(context, null, null, null, null);
    }

}

您的上下文為空。 Context context; 您在哪里設置上下文 在使用之前設置上下文。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM