Вопрос

I am a beginner for android programming. I am having this error while executing one method. I have this method which listens to volume change event.

public boolean onKeyDown(int keyCode, KeyEvent event) 
     {
        //db = new DatabaseHelper(this.getApplicationContext());    
        AutomatedFragment obj = new AutomatedFragment();
            if ((keyCode == KeyEvent.KEYCODE_VOLUME_UP))
            {
                //@ override
                obj.sendSMSEmergency();
            }
            return true;
     }

Now I am calling another method send SMSEMergency() from other class... Which is

public void sendSMSEmergency() {
        db = new ContactsManager(getActivity());
        ArrayList<String> numberList = db.numberList();       
        String numbers[] = new String[numberList.size()];
        numbers = numberList.toArray(numbers);


        try {           
            SmsManager smsManager = SmsManager.getDefault();
            for(String number : numbers) {
                Log.d("number", number);
                smsManager.sendTextMessage(number, null, msg.getMessage(), sentPendIntent, delivered_pendintent);
            }
            Toast.makeText(getActivity(), "Automatic Texts Successfull", Toast.LENGTH_LONG).show();
        } catch (Exception e) {
            Toast.makeText(getActivity(), "Texts Failed !!", Toast.LENGTH_LONG).show();
            e.printStackTrace();
        }
    }

When I press volume up my application stops and I am having following error in logcat.

05-11 12:18:29.726: E/AndroidRuntime(828): java.lang.NullPointerException
05-11 12:18:29.726: E/AndroidRuntime(828):  at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:224)

Please help I dont know how to solve this

Это было полезно?

Решение

The Context you passed to SQLiteOpenHelper constructor was null.

Assuming ContactsManager is your helper class, in here

db = new ContactsManager(getActivity());

you're instantiating the helper before your fragment is attached to an activity and getActivity() returns null. Use some other source of Context such as passing YourActivity.this as an argument.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top