2013-10-04 2 views
-1

한 활동에서 다른 활동으로 이동하는 동안 널 포인터 예외가 표시되지만 오류가 발생한 위치를 찾을 수 없습니다.내 활동이 중지되고 널 포인터 예외 표시

LoginDataBaseAdapter 클래스 것 말이다 기능 Displayfriend을 제공

public class DisplayFriendList extends Activity { 

    Context context = this; 
    LoginDataBaseAdapter Logi; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.displayfriend); 

     Logi = new LoginDataBaseAdapter(this); 

     Bundle data = getIntent().getExtras(); 
     String code = data.getString("EMPCode"); 

     String gotfriend = Logi.Displayfriend(code); 

     TextView txt = (TextView) findViewById(R.id.getfriend); 
     txt.setText(gotfriend); 

     Button btnadd = (Button) findViewById(R.id.data_addfriend); 
     btnadd.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       // Logi.insertFriendEntry(String Name, String Emp_Code); 

       Toast.makeText(context, "Friend added successfully", 
         Toast.LENGTH_SHORT).show(); 
      } 
     }); 

    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // TODO Auto-generated method stub 
     return super.onCreateOptionsMenu(menu); 
    } 

} 

아래 내 자바 클래스를 제공

10-04 12:14:10.876: E/AndroidRuntime(1966): FATAL EXCEPTION: main 

10-04 12:14:10.876: E/AndroidRuntime(1966): java.lang.RuntimeException: Unable to start 
activity ComponentInfo{com.neochat/com.neochat.Displayfriendlist}: 
java.lang.NullPointerException 

10-04 12:14:10.876: E/AndroidRuntime(1966):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180) 

10-04 12:14:10.876: E/AndroidRuntime(1966):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230) 

10-04 12:14:10.876: E/AndroidRuntime(1966):  at android.app.ActivityThread.access$600(ActivityThread.java:141) 

10-04 12:14:10.876: E/AndroidRuntime(1966):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234) 

10-04 12:14:10.876: E/AndroidRuntime(1966):  at android.os.Handler.dispatchMessage(Handler.java:99) 

10-04 12:14:10.876: E/AndroidRuntime(1966):  at android.os.Looper.loop(Looper.java:137) 

10-04 12:14:10.876: E/AndroidRuntime(1966):  at android.app.ActivityThread.main(ActivityThread.java:5041) 

10-04 12:14:10.876: E/AndroidRuntime(1966):  at java.lang.reflect.Method.invokeNative(Native Method) 

10-04 12:14:10.876: E/AndroidRuntime(1966):  at java.lang.reflect.Method.invoke(Method.java:511) 

10-04 12:14:10.876: E/AndroidRuntime(1966):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 

10-04 12:14:10.876: E/AndroidRuntime(1966):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 

10-04 12:14:10.876: E/AndroidRuntime(1966):  at dalvik.system.NativeStart.main(Native Method) 

10-04 12:14:10.876: E/AndroidRuntime(1966): Caused by: java.lang.NullPointerException 

10-04 12:14:10.876: E/AndroidRuntime(1966):  at com.neochat.LoginDataBaseAdapter.Displayfriend(LoginDataBaseAdapter.java:110) 

10-04 12:14:10.876: E/AndroidRuntime(1966):  at com.neochat.Displayfriendlist.onCreate(Displayfriendlist.java:25) 

10-04 12:14:10.876: E/AndroidRuntime(1966):  at android.app.Activity.performCreate(Activity.java:5104) 

10-04 12:14:10.876: E/AndroidRuntime(1966):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080) 

10-04 12:14:10.876: E/AndroidRuntime(1966):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144) 

10-04 12:14:10.876: E/AndroidRuntime(1966):  ... 11 more 

아래 내 로그 캣을 제공

public String DisplayFriend(String Emp_Code) { 
    String displayfriend = "SELECT NAME , EMPLOYEE_CODE FROM EMPLOYEES " + 
       "WHERE " + " EMPLOYEE_CODE " + "LIKE '" +Emp_Code; 
    Cursor display = db.rawQuery(displayfriend, null); 
    String data = display.getString(0); 
    return data; 
} 
,
+0

이 줄을 확인하십시오. String gotfriend = Logi.Displayfriend (code); ? –

+0

'LoginDataBaseAdapter.java : 110' 라인은 무엇입니까? – ssantos

+0

LoginDataBaseAdapter는 또 다른 자바 클래스입니다. Logi는 클래스 객체입니다 – user2833559

답변

0

Logi var이 null과 같기 때문에 예외가 발생합니다. Logi이 초기화에 문제가있어 null 인 경우 Logi=new LoginDataBaseAdapter(this); 및 생성자 LoginDataBaseAdapter을 검사하여 오류가 있는지 확인해야합니다.

어댑터의 코드와 두 번째 활동을 게시하면 더욱 정확해질 것입니다.

참고 : 메소드와 변수의 이름을 "자바 우수 사례"로 지정해야합니다. 비 정적 메소드는 소문자로 시작해야합니다. 마지막이 아닌 변수는 소문자로 시작해야합니다.

0

내가 커서가 null 있다는 것입니다 문제가 커서 검사에서 데이터를 가져 오는 중 오류 전에 DisplayFriend 방법

에 생각하거나이 null의 경우되지는 예외를 throughts. 나는 그것이 문제라고 생각한다.

+0

코드에 문제가 있습니까? in displayfriend()? – user2833559

+0

네, 당신이 thee emp_code를 확인하지 ur 같아요 또는 아닙니다 그리고 그 emp_code와 데이터베이스에 아무 데이터가 없다면 커서가 null을 반환 여기에 커서를 확인하지 못했습니다 null 또는 커서가 null이 아닌 경우 다음 문자열을 반환해야합니다 ..! 그러면 UR 문제가 해결 될 것입니다. –

+0

문제는 이제 해결되었습니다 .. 지원 팀원들에게 감사드립니다 ... – user2833559

0

# 110은 어느 라인입니까? 첫 번째 문자열 인 경우 (String display ...) Emp_Code를 확인하십시오. 그것이 세 번째 (문자열 데이터 ...)라면 다음을 사용하십시오 :

if (display==null) return null; //or "" 
if (!display.moveToFirst()) return null; 
//the rest of your code 
0

이러한 오류를 해결하는 쉬운 방법은 log cat을 보는 것입니다.

LoginDataBaseAdapter.Displayfriend (LoginDataBaseAdapter.java:110)이 라인에

을 두 번 클릭하고 코드를 기반으로 표시된 라인에 연결됩니다은 널 포인터가 발생할 수 있습니다 결정합니다. 개체가 인스턴스화되지 않았거나 데이터베이스가 데이터를 반환하지 않습니다.