2012-06-25 71 views
0

我在使用我的數據庫時遇到問題,出現空指針異常,我無法解決任何幫助?在這裏我的代碼,我DONOT知道爲什麼我得到這個錯誤,但亞姆確保從 拋出加爲好友方法使用插入方法時出現空指針異常

database.java

public class frienddatabase extends SQLiteOpenHelper { 
     public static String databasename="frienddatabase"; 
     public static int databaseVersion =6; 
     public String tablename="friends"; 
     public String id="_id"; 
     public String name="name"; 
     public String email="email"; 
     public String phone="phone"; 
     public String pic="pic"; 
     public String age="age"; 
     public String edu="edu"; 

構造:

 public frienddatabase(Context context) { 
      super(context,databasename,null,databaseVersion); 
      // TODO Auto-generated constructor stub 
     } 



     @Override 
     public void onCreate(SQLiteDatabase db) { 
      // TODO Auto-generated method stub 
      String create = "CREATE TABLE "+tablename+"("+id+" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,"+name+" Text unique Not null,"+ 
      email+" TEXT NOT NULL,"+phone+" TEXT NOT NULL,"+pic+" TEXT,"+age+" TEXT NOT NULL,"+edu+" TEXT NOT NULL"+")"; 
      db.execSQL(create); 
     } 

     @Override 
     public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
      // TODO Auto-generated method stub 
      db.execSQL("DROP TABLE IF EXISTS "+tablename); 
      onCreate(db); 
     } 

和這是我嘗試使用和得到的功能NullPointer Exception

 public boolean addFriend(String Fname,String Femail,String Fphone,String Fage,String Fedu) 
     { 
      SQLiteDatabase db=this.getWritableDatabase(); 
      ContentValues cv = new ContentValues(); 
      cv.put(name, Fname); 
      cv.put(email, Femail); 
      cv.put(phone, Fphone); 
      cv.put(age, Fage); 
      cv.put(edu, Fedu); 
      db.insert(tablename, pic, cv); 
      db.close(); 
      return true; 
     } 

我得到錯誤,當我試圖使用addfriend方法:這裏addfriend I類調用它addfriend方法

public class addfriend extends Activity { 
     EditText name,email,mobile,age,edu; 
      Button save,cancel,addimage; 
      frienddatabase helper; 
      String namex; 
      @Override 
      protected void onCreate(Bundle savedInstanceState) { 
       // TODO Auto-generated method stub 
       super.onCreate(savedInstanceState); 
       setContentView(R.layout.add); 
       name=(EditText)findViewById(R.id.name); 
       email=(EditText)findViewById(R.id.email); 
       mobile=(EditText)findViewById(R.id.mobile); 
       age=(EditText)findViewById(R.id.age); 
       edu=(EditText)findViewById(R.id.edu); 
       save=(Button)findViewById(R.id.save); 
       cancel=(Button)findViewById(R.id.cancel); 
       addimage=(Button)findViewById(R.id.addimage); 
       helper=new frienddatabase(getApplicationContext()); 
         save.setOnClickListener(new View.OnClickListener() { 

        public void onClick(View v) { 
         // TODO Auto-generated method stub 

         namex=name.getText().toString(); 
         Toast.makeText(getApplicationContext(),namex, Toast.LENGTH_LONG).show(); 
         Boolean check = helper.addFriend(name.getText().toString(), email.getText().toString(), mobile.getText().toString(), age.getText().toString(), edu.getText().toString()); 
         if(check==null) 
         { 
          Toast.makeText(getApplicationContext(), "null boolean",Toast.LENGTH_LONG).show(); 
         } 
         if(check) 
         { 
          Toast.makeText(getApplicationContext(), "new friend added successfull!!", Toast.LENGTH_LONG).show(); 
         } 
         else 
         { 
          Toast.makeText(getApplicationContext(), "data not saved ", Toast.LENGTH_LONG).show(); 
         } 
        } 
       }); 
} 
} 

這裏也登錄貓

06-25 12:53:25.041: W/dalvikvm(1290): threadid=1: thread exiting with uncaught exception (group=0x409951f8) 
06-25 12:53:25.061: E/AndroidRuntime(1290): FATAL EXCEPTION: main 
06-25 12:53:25.061: E/AndroidRuntime(1290): java.lang.NullPointerException 
06-25 12:53:25.061: E/AndroidRuntime(1290):  at com.apk.addfriend$1.onClick(addfriend.java:38) 
06-25 12:53:25.061: E/AndroidRuntime(1290):  at android.view.View.performClick(View.java:3460) 
06-25 12:53:25.061: E/AndroidRuntime(1290):  at android.view.View$PerformClick.run(View.java:13955) 
06-25 12:53:25.061: E/AndroidRuntime(1290):  at android.os.Handler.handleCallback(Handler.java:605) 
06-25 12:53:25.061: E/AndroidRuntime(1290):  at android.os.Handler.dispatchMessage(Handler.java:92) 
06-25 12:53:25.061: E/AndroidRuntime(1290):  at android.os.Looper.loop(Looper.java:137) 
06-25 12:53:25.061: E/AndroidRuntime(1290):  at android.app.ActivityThread.main(ActivityThread.java:4340) 
06-25 12:53:25.061: E/AndroidRuntime(1290):  at java.lang.reflect.Method.invokeNative(Native Method) 
06-25 12:53:25.061: E/AndroidRuntime(1290):  at java.lang.reflect.Method.invoke(Method.java:511) 
06-25 12:53:25.061: E/AndroidRuntime(1290):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 
06-25 12:53:25.061: E/AndroidRuntime(1290):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 
06-25 12:53:25.061: E/AndroidRuntime(1290):  at dalvik.system.NativeStart.main(Native Method) 

任何幫助,請?

+9

logcat的錯誤請... – user370305

+0

並涉及異常投擲用線代碼發佈... – m0skit0

+0

此鏈接可能是有用的http://stackoverflow.com/questions/6703286/sqlite-and-android-insert-updates-on-sqlitedatabase-compiledstatements – Andy

回答

0

你是不是在你的addFriend()方法 將ID,但聲明在代碼的主鍵字段 檢查這個ID ....

+0

不是我的ID自動增量,所以我不需要傳遞ID addfriend()thx – Sniver

+0

只是打印並檢查你傳遞的所有數據都包含任何字符。 – kalandar

相關問題