Nullpointer Exception在android帮助我



空指针异常代码:

ArrayList<Item> m_parts = new ArrayList<Item>();
       SQLiteDatabase db ;
      try{
         db = this.getReadableDatabase();
         Cursor res =  db.rawQuery( "select * from expenses", null );
       res.moveToFirst();
       String amt,typ,rs,dt,tp,p2,p1,p3;
       int amount;
       while(res.isAfterLast() == false){
          rs=res.getString(res.getColumnIndex(EXPENSES_COLUMN_AMOUNT));
          tp=res.getString(res.getColumnIndex(EXPENSES_COLUMN_TYPE));
          dt=res.getString(res.getColumnIndex(EXPENSES_COLUMN_DATE));
          amount=Integer.parseInt(rs);
            m_parts.add(new Item("hello","there", 10));
       }
      }
       catch(Exception e)
       {
           System.out.println("new Error :"+e);
       }
       return m_parts;
日志文件

08-11 13:45:43.041: D/gralloc_金鱼(2448):Emulator without GPU emulation detected。08-11 13:45:46.242: D/AndroidRuntime(2448): closing down VM .日志示例08-11 13:45:46.313: W/dalvikvm(2448): threadid=1:线程退出未捕获异常(group=0x414c4700)E/AndroidRuntime(2448): FATAL EXCEPTION: main08-11 13:45:46.412: E/AndroidRuntime(2448): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.myexpenses/com.example.myexpenses。ListViewMainActivity}: java.lang.NullPointerException08:11 13:45:46.412: E/AndroidRuntime(2448): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2137)08-11 13:45:46.412: E/AndroidRuntime(2448): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)E/AndroidRuntime(2448): at android.app.ActivityThread.access$600(ActivityThread.java:141)E/AndroidRuntime(2448): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)08:11 13:45:46.412: E/AndroidRuntime(2448): at android.os.Handler.dispatchMessage(Handler.java:99)08-11 13:45:46.412: E/AndroidRuntime(2448): at android.os. loop(loop .java:137)E/AndroidRuntime(2448): at android.app.ActivityThread.main(ActivityThread.java:5103)08-11 13:45:46.412: E/AndroidRuntime(2448): at java.lang.reflect.Method。invokeNative(本地方法)08-11 13:45:46.412: E/AndroidRuntime(2448): at java.lang.reflect.Method.invoke(Method.java:525)08:11 13:45:46.412: E/AndroidRuntime(2448): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)08-11 13:45:46.412: E/AndroidRuntime(2448): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)08-11 13:45:46.412: E/AndroidRuntime(2448): at dalvik.system. native . art. exe主要(本地方法)08-11 13:45:46.412: E/AndroidRuntime(2448): Caused by: java.lang.NullPointerException .日志示例08-11 13:45:46.412: E/AndroidRuntime(2448): at android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:235)08-11 13:45:46.412: E/AndroidRuntime(2448): at android.database.sqlite. sqliteopenhelper . getdatabasellocked (SQLiteOpenHelper.java:224)08-11 13:45:46.412: E/AndroidRuntime(2448): at android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:188)E/AndroidRuntime(2448): at com.example.myexpenses.Dbhelper.gettoday1(Dbhelper.java:253)08:11 13:45:46.412: E/AndroidRuntime(2448): at com.example.myexpenses.ListViewMainActivity.(ListViewMainActivity.java:18)E/AndroidRuntime(2448): at java.lang.Class。newInstanceImpl(本地方法)08:11 13:45:46.412: E/AndroidRuntime(2448): at java.lang.Class.newInstance(Class.java:1130)08:11 13:45:46.412: E/AndroidRuntime(2448): at android.app.Instrumentation.newActivity(Instrumentation.java:1061)08-11 13:45:46.412: E/AndroidRuntime(2448): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2128)08-11 13:45:46.412: E/AndroidRuntime(2448):…11个

传递给SQLiteOpenHelper构造函数的Context不是有效的Context,它的基本上下文是null

这很可能是由于传递了一个Activity,您将new实例化为Context。永远不要用new实例化活动。

最新更新