Ошибка «Не удается запустить действие»

#java #android #sqlite #logcat

#java #Android #sqlite #logcat

Вопрос:

Мой код:

 private void filldata(){
    Cursor datacursor = sqlite.fetchalldata("Program");
    startManagingCursor(datacursor);

    String[] from = new String[]{DatabaseHelper.KEY_PROGRAM_DATE, DatabaseHelper.KEY_PROGRAM_TIME, DatabaseHelper.KEY_PROGRAM_CHANNEL};
    String[] from1 = new String[]{DatabaseHelper.KEY_PROGRAM_TITLE};

    int[] to = new int[]{R.id.programdate, R.id.programtime, R.id.programchannel};
    int[] to1 = new int[]{R.id.programtitle};

    SimpleExpandableListAdapter SEL = new SimpleExpandableListAdapter(this, 
                    createGroupList(), R.layout.programgroup_row, from1, to1,       
                    createChildList(), R.layout.programchild_row, from, to);
    setListAdapter( SEL );
}
  

когда я вызываю filldata() in oncreate() , Logcat выдает мне эту ошибку:

 04-27 03:43:10.066: WARN/dalvikvm(279): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
04-27 03:43:10.146: ERROR/AndroidRuntime(279): FATAL EXCEPTION: main
04-27 03:43:10.146: ERROR/AndroidRuntime(279): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android.imammuda/com.android.imammuda.ImamMuda}: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android.imammuda/com.android.imammuda.Program}: java.lang.NullPointerException
04-27 03:43:10.146: ERROR/AndroidRuntime(279):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
04-27 03:43:10.146: ERROR/AndroidRuntime(279):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
04-27 03:43:10.146: ERROR/AndroidRuntime(279):     at android.app.ActivityThread.access$2300(ActivityThread.java:125)
04-27 03:43:10.146: ERROR/AndroidRuntime(279):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
04-27 03:43:10.146: ERROR/AndroidRuntime(279):     at android.os.Handler.dispatchMessage(Handler.java:99)
04-27 03:43:10.146: ERROR/AndroidRuntime(279):     at android.os.Looper.loop(Looper.java:123)
04-27 03:43:10.146: ERROR/AndroidRuntime(279):     at android.app.ActivityThread.main(ActivityThread.java:4627)
04-27 03:43:10.146: ERROR/AndroidRuntime(279):     at java.lang.reflect.Method.invokeNative(Native Method)
04-27 03:43:10.146: ERROR/AndroidRuntime(279):     at java.lang.reflect.Method.invoke(Method.java:521)
04-27 03:43:10.146: ERROR/AndroidRuntime(279):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
04-27 03:43:10.146: ERROR/AndroidRuntime(279):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
04-27 03:43:10.146: ERROR/AndroidRuntime(279):     at dalvik.system.NativeStart.main(Native Method)
04-27 03:43:10.146: ERROR/AndroidRuntime(279): Caused by: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android.imammuda/com.android.imammuda.Program}: java.lang.NullPointerException
04-27 03:43:10.146: ERROR/AndroidRuntime(279):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
04-27 03:43:10.146: ERROR/AndroidRuntime(279):     at android.app.ActivityThread.startActivityNow(ActivityThread.java:2503)
04-27 03:43:10.146: ERROR/AndroidRuntime(279):     at android.app.LocalActivityManager.moveToState(LocalActivityManager.java:127)
04-27 03:43:10.146: ERROR/AndroidRuntime(279):     at android.app.LocalActivityManager.startActivity(LocalActivityManager.java:339)
04-27 03:43:10.146: ERROR/AndroidRuntime(279):     at android.widget.TabHost$IntentContentStrategy.getContentView(TabHost.java:651)
04-27 03:43:10.146: ERROR/AndroidRuntime(279):     at android.widget.TabHost.setCurrentTab(TabHost.java:323)
04-27 03:43:10.146: ERROR/AndroidRuntime(279):     at android.widget.TabHost.addTab(TabHost.java:213)
04-27 03:43:10.146: ERROR/AndroidRuntime(279):     at com.android.imammuda.ImamMuda.onCreate(ImamMuda.java:26)
04-27 03:43:10.146: ERROR/AndroidRuntime(279):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
04-27 03:43:10.146: ERROR/AndroidRuntime(279):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
04-27 03:43:10.146: ERROR/AndroidRuntime(279):     ... 11 more
04-27 03:43:10.146: ERROR/AndroidRuntime(279): Caused by: java.lang.NullPointerException
04-27 03:43:10.146: ERROR/AndroidRuntime(279):     at com.android.imammuda.Program.createGroupList(Program.java:91)
04-27 03:43:10.146: ERROR/AndroidRuntime(279):     at com.android.imammuda.Program.filldata(Program.java:45)
04-27 03:43:10.146: ERROR/AndroidRuntime(279):     at com.android.imammuda.Program.onCreate(Program.java:29)
04-27 03:43:10.146: ERROR/AndroidRuntime(279):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
04-27 03:43:10.146: ERROR/AndroidRuntime(279):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
04-27 03:43:10.146: ERROR/AndroidRuntime(279):     ... 20 more
  

* Другие классы

Databasehelper extends SqliteOpenHelper

sqlite, который получил open , close , createdata fetchdata из / в databasehelper

Я хочу знать, почему я получаю эту ошибку при запуске функции и никаких проблем, когда я ее не вызываю.

Ответ №1:

Это попадание в NullPointer Exception в Program строке класса с номером 91. Проверьте эту строку и попытайтесь разрешить это исключение нулевого указателя

Комментарии:

1. Cursor titleonly = mDb.rawQuery("SELECT " DatabaseHelper.KEY_PROGRAM_TITLE " FROM " DatabaseHelper.TABLE_PROGRAM, null); у этой команды sql возникли какие-либо проблемы?

2. кажется, что либо MDB, либо DatabaseHelper может быть нулевым

3. private SQLiteDatabase mDb; private DatabaseHelper mDbHelper; я объявляю так

4. на самом деле эта функция «creategrouplist» выполняет панель групп в макете expandablelist. функция выглядит следующим образом: mDb = openOrCreateDatabase(mDbHelper.getDbName(), Context.MODE_PRIVATE, null); Cursor titleonly = mDb.rawQuery("SELECT " DatabaseHelper.KEY_PROGRAM_TITLE " FROM " DatabaseHelper.TABLE_PROGRAM, null); ArrayList result = new ArrayList(); for loop HashMap m = new HashMap(); m.put() result.add( m ); я хочу спросить, нужно ли читать из таблицы и помещать в grouplist, должны ли там использоваться list и hashmap?