2012-06-25 10 views
0

데이터베이스를 사용할 때 문제가 있습니다. 널 포인터 예외가 발생하고 어떤 도움도 해결할 수 없습니까 ?? 여기에 내 코드, 나는삽입 메서드를 사용할 때 null 포인터 예외가 발생했습니다

친구 방법을 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"; 

생성자 추가 에서 발생이 오류 만 확인 스피을받을 이유를 알고이 donot :

 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

내가 방법을 addfriend 사용하려고 할 때
 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의 그것에 방법

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

로그 캣 오류 PLS ... – user370305

+0

과는 관련이 예외 던지는 라인을 당신의 addFriend() 메소드 에 ID를 삽입하지만 코드에서 기본 키 필드 확인이의 ID를 선언하지 않습니다 코드 게시 됨 ... – m0skit0

+0

이 링크가 도움이 될 수 있습니다. http://stackoverflow.com/questions/6703286/sqlite-and-android-insert-updates-on-sqlitedatabase-compiledstatements – Andy

답변

0

당신은 ....

+0

내 ID가 자동 증가가 아니므로 패스 ID가 필요하지 않습니다. addfriend() thx – Sniver

+0

그냥 인쇄하고 모든 문자가 들어있는 모든 데이터를 확인하십시오. – kalandar

관련 문제