我在將數據插入到數據庫時出現此異常。我是android初學者任何人請幫我解決這個問題....我無法插入數據.... ..I'm發佈我的代碼和LOGCAT
錯誤....創建sqlite數據庫時空指針異常
公共類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)
你應該發佈你的代碼,我們不能找出錯誤沒有你的鱈魚 –
@Mohammed momn好吧... –
你可能想要確保你試圖插入的一切是有效的(即沒有空值) 。 – ErstwhileIII