创建sqlite数据库时出现空指针异常

Somasundaram NP

我在将数据插入数据库时​​遇到此异常。我是android初学者,任何人都请帮我解决这个问题。...我无法插入数据...我正在发布代码和LOGCAT错误....

公共类Db扩展了SQLiteOpenHelper {

Context context;
public static String databasename="modelnew.db";
private static final int SCHEMA_VERSION = 1;
public static String category_table="category";
public static String Id="categoryid";
public static String Name="caregoryname";



public Db(Context context) {
    //super(context,Environment.getExternalStorageDirectory()+"/"+databasename, null, 1);
    super(context,databasename, null, SCHEMA_VERSION);
    // TODO Auto-generated constructor stub
    this.context=context;
}

@Override
public void onCreate(SQLiteDatabase db) {
    // TODO Auto-generated method stub
    String query="create table category_table(Id integer primary key ,Name text)";
    db.execSQL(query);
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    // TODO Auto-generated method stub

}

}

class ProgressTask extends AsyncTask<String, String, JSONObject> 
{



    @Override
    protected void onPreExecute()
    {
        super.onPreExecute();

    }

    @Override
    protected JSONObject doInBackground(String... args) 
    {

        System.out.println("Inside do inbackground"+ purl);

        Jsondbparser jParser = new Jsondbparser();
        // Getting JSON from URL
        JSONObject json = jParser.getJSONFromUrl(purl);

        return json;
    }

    @Override
    protected void onPostExecute(JSONObject json) 
    {

        try 
        {

            System.out.println("returnjson"+json);
            // Getting JSON Array from URL

            JSONObject json1 = json.getJSONObject("response");

            System.out.println(json1.getString("success"));

            jsonary = json1.getJSONArray("categoryid");

            jsonarr=json1.getJSONArray("categoryname");

            for (int i = 0; i < jsonary.length(); i++) 
            {

                categoryId = jsonary.getInt(i);

                System.out.println("id-- "+categoryId);

                categoryName = jsonarr.getString(i);

                System.out.println("id-- "+categoryName);

                idlist.add(String.valueOf(categoryId));

                list.add(categoryName);

                addCategory();

                /*db=new Db(con);

                Model model=new Model();

                model.setcid(categoryId);

                model.setcname(categoryName);

                addCategory(model);

                //close();*/

            }

        } 
        catch (JSONException e) 
        {
            e.printStackTrace();
        }

    }
}

void addCategory()
{

   System.out.println("inside insert method");

    Db h = new Db(getApplicationContext());

    SQLiteDatabase db = h.getWritableDatabase();

    for(int j=0;j<=idlist.size();j++)
    {

        ContentValues values = new ContentValues();

        values.put("categoryid", idlist.get(j));//category id

        values.put("categoryname", list.get(j)); // Category Name

        System.out.println("id ---"+idlist.get(j));

        System.out.println("name-----"+list.get(j));

        // Inserting Row
        db.insert("t_category", null, values);

        db.close(); // Closing database connection

        System.out.println("before end");

    }


}

}

02-20 03:54:17.192: E/AndroidRuntime(931): FATAL EXCEPTION: main
02-20 03:54:17.192: E/AndroidRuntime(931): java.lang.NullPointerException
02-20 03:54:17.192: E/AndroidRuntime(931):  at android.content.ContextWrapper.getApplicationContext(ContextWrapper.java:109)
02-20 03:54:17.192: E/AndroidRuntime(931):  at com.example.koto.Jsondb.addCategory(Jsondb.java:133)
02-20 03:54:17.192: E/AndroidRuntime(931):  at com.example.koto.Jsondb$ProgressTask.onPostExecute(Jsondb.java:102)
02-20 03:54:17.192: E/AndroidRuntime(931):  at com.example.koto.Jsondb$ProgressTask.onPostExecute(Jsondb.java:1)
02-20 03:54:17.192: E/AndroidRuntime(931):  at android.os.AsyncTask.finish(AsyncTask.java:631)
02-20 03:54:17.192: E/AndroidRuntime(931):  at android.os.AsyncTask.access$600(AsyncTask.java:177)
02-20 03:54:17.192: E/AndroidRuntime(931):  at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:644)
02-20 03:54:17.192: E/AndroidRuntime(931):  at android.os.Handler.dispatchMessage(Handler.java:99)
02-20 03:54:17.192: E/AndroidRuntime(931):  at android.os.Looper.loop(Looper.java:137)
02-20 03:54:17.192: E/AndroidRuntime(931):  at android.app.ActivityThread.main(ActivityThread.java:5041)
02-20 03:54:17.192: E/AndroidRuntime(931):  at java.lang.reflect.Method.invokeNative(Native Method)
02-20 03:54:17.192: E/AndroidRuntime(931):  at java.lang.reflect.Method.invoke(Method.java:511)
02-20 03:54:17.192: E/AndroidRuntime(931):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
02-20 03:54:17.192: E/AndroidRuntime(931):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
02-20 03:54:17.192: E/AndroidRuntime(931):  at dalvik.system.NativeStart.main(Native Method)
哈米德·沙图(Hamid Shatu)

当您在下面的行中Db使用初始化对象时getApplicationContext()...没有任何提示Context...

    Db h = new Db(getApplicationContext());

为了解决您的Context问题,您可以通过AsyncTask()构造函数传递活动的上下文我给你一个场景...

假设MainActivity.java您正在执行您的代码,ProgressTask.java那么您应该通过Context以下...。

new ProgressTask(MainActivity.this).execute();

在您的ProgressTask.java课程中,您可以按以下方式ContextProgressTask()构造器中检索该内容...。

public ProgressTask extends AsyncTask<String, String, JSONObject>  {

    Context mContext;

    ProgressTask (Context context) {

        mContext.this = context

    }

    @Override
    protected void onPreExecute()
    {
        super.onPreExecute();

    }

    .........

}

现在,您可以Db按以下方式初始化对象...

Db h = new Db(mContext);

这样可以解决您的问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从App创建SQLite数据库时出现空指针异常

来自分类Dev

连接oracle数据库时创建会话工厂时出现空指针异常

来自分类Dev

在Android中查询SQLite数据库时出现Java空指针异常

来自分类Dev

调用MySql数据库时出现空指针异常

来自分类Dev

单击按钮后出现空指针异常(SQLite数据库)

来自分类Dev

在创建基于文本的“数据库”时尝试使用数组存储同一对象的多个实例时出现空指针异常

来自分类Dev

创建notificationmanager时出现空指针异常

来自分类Dev

创建gridview时出现空指针异常

来自分类Dev

Android SQLite数据库空指针

来自分类Dev

在MySQL数据库写入过程中出现空指针异常

来自分类Dev

尝试将数据从sqlite添加到微调器时出现空指针异常

来自分类Dev

向数据库发送纬度和经度时,Android空指针异常

来自分类Dev

Android中的数据库空指针异常

来自分类Dev

我的数据库上的Android空指针异常

来自分类Dev

创建sqlite数据库时出错?

来自分类Dev

创建时SQLite数据库失败

来自分类Dev

尝试在片段之间传递数据时出现空指针异常

来自分类Dev

从 Firebase 检索数据时出现空指针异常

来自分类Dev

在终端中创建 sqlite3 数据库时出现“错误:无法打开数据库”

来自分类Dev

在数据库中创建android SQLite表时出现语法错误

来自分类Dev

在SQLite中创建视图时出现“数据库已锁定”错误

来自分类Dev

在PhpStorm中打开数据库时出现奇怪的异常?

来自分类Dev

从数据库请求图像时出现异常

来自分类Dev

从命令行创建空的sqlite数据库

来自分类Dev

使用反射时出现空指针异常

来自分类Dev

筛选时出现空指针异常

来自分类Dev

启动意图时出现空指针异常

来自分类Dev

单击按钮时出现空指针异常

来自分类Dev

自动装配时出现空指针异常

Related 相关文章

  1. 1

    从App创建SQLite数据库时出现空指针异常

  2. 2

    连接oracle数据库时创建会话工厂时出现空指针异常

  3. 3

    在Android中查询SQLite数据库时出现Java空指针异常

  4. 4

    调用MySql数据库时出现空指针异常

  5. 5

    单击按钮后出现空指针异常(SQLite数据库)

  6. 6

    在创建基于文本的“数据库”时尝试使用数组存储同一对象的多个实例时出现空指针异常

  7. 7

    创建notificationmanager时出现空指针异常

  8. 8

    创建gridview时出现空指针异常

  9. 9

    Android SQLite数据库空指针

  10. 10

    在MySQL数据库写入过程中出现空指针异常

  11. 11

    尝试将数据从sqlite添加到微调器时出现空指针异常

  12. 12

    向数据库发送纬度和经度时,Android空指针异常

  13. 13

    Android中的数据库空指针异常

  14. 14

    我的数据库上的Android空指针异常

  15. 15

    创建sqlite数据库时出错?

  16. 16

    创建时SQLite数据库失败

  17. 17

    尝试在片段之间传递数据时出现空指针异常

  18. 18

    从 Firebase 检索数据时出现空指针异常

  19. 19

    在终端中创建 sqlite3 数据库时出现“错误:无法打开数据库”

  20. 20

    在数据库中创建android SQLite表时出现语法错误

  21. 21

    在SQLite中创建视图时出现“数据库已锁定”错误

  22. 22

    在PhpStorm中打开数据库时出现奇怪的异常?

  23. 23

    从数据库请求图像时出现异常

  24. 24

    从命令行创建空的sqlite数据库

  25. 25

    使用反射时出现空指针异常

  26. 26

    筛选时出现空指针异常

  27. 27

    启动意图时出现空指针异常

  28. 28

    单击按钮时出现空指针异常

  29. 29

    自动装配时出现空指针异常

热门标签

归档