2012-04-25 4 views
0

Android 응용 프로그램에서 MS SQL Server 2008에 저장된 데이터베이스로 로그인 시스템을 구현하려고합니다. 서버에 연결하면 문제가 발생합니다. 사용자가 연결 도우미 클래스에 연결하여 logIn 메서드를 호출하여 암호 일치를 비교합니다. 메서드 호출시 크래시가 발생했습니다. "활동 방법을 실행할 수 없습니다."

버튼에서 로그를 클릭하면 실행되는 기능입니다 : 다음과 같이 커넥터 클래스에

public void onLogInButtonClicked(View v){ 
     final EditText login = (EditText) findViewById(R.id.login); 
     final EditText password = (EditText) findViewById(R.id.password); 

     String userName = login.getText().toString(); 
     String pass = password.getText().toString(); 
     System.out.println("Pass Entered:" + pass); 
     System.out.println("User Entered" + userName); 


     if (connector.logIn(userName, pass)){ 

      //Creates Intent from new Activity to be launched 
      Intent k = new Intent(this, MainActivity.class); 

      //Sends login name to activity k 
      k.putExtra("loginName", userName); 
      //Starts new Activity 
      startActivity(k); 


     } 
     else 
     { 
      //toast log in unsuccessful 
     } 
    } 

로그인 방법은 : 나는 심지어를 볼 수 없어요

boolean logIn(String name, String password){ 
     System.out.println("I'm in LogIn method"); 
     java.sql.ResultSet result = null; 
     boolean log = false; 
     try { 
      connection = this.getConnection(); 
      if (connection != null) { 

        //String for the login query 
        String statement = "SELECT Password FROM Users WHERE UserName = '" 
            + name + "'";  
        System.out.println(statement); 

        Statement select = connection.createStatement(); 
        result = select.executeQuery(statement); 
        System.out.println(result.getString(1)); 
        if(result.getString(1) == password) log = true; 

        result.close(); 
        result = null; 
        closeConnection(); 
      } 
      else { 
        System.out.println("Error: No active Connection"); 
        return log; 
      } 
     } catch (Exception e) { 
      e.printStackTrace(); 
      } 
     return log; 
    } 

"나는 콘솔에있는 logIn 메소드에 있습니다."라고 말하면서, 메소드가 호출되는 라인에서 크래시가 발생하지만 앱에 들어가기 전에 앱이 추락하게합니다. 사전에

04-25 23:32:45.855: E/AndroidRuntime(795): FATAL EXCEPTION: main 
04-25 23:32:45.855: E/AndroidRuntime(795): java.lang.IllegalStateException: Could not execute method of the activity 
04-25 23:32:45.855: E/AndroidRuntime(795): at android.view.View$1.onClick(View.java:2144) 
04-25 23:32:45.855: E/AndroidRuntime(795): at android.view.View.performClick(View.java:2485) 
04-25 23:32:45.855: E/AndroidRuntime(795): at android.view.View$PerformClick.run(View.java:9080) 
04-25 23:32:45.855: E/AndroidRuntime(795): at android.os.Handler.handleCallback(Handler.java:587) 
04-25 23:32:45.855: E/AndroidRuntime(795): at android.os.Handler.dispatchMessage(Handler.java:92) 
04-25 23:32:45.855: E/AndroidRuntime(795): at android.os.Looper.loop(Looper.java:123) 
04-25 23:32:45.855: E/AndroidRuntime(795): at android.app.ActivityThread.main(ActivityThread.java:3683) 
04-25 23:32:45.855: E/AndroidRuntime(795): at java.lang.reflect.Method.invokeNative(Native Method) 
04-25 23:32:45.855: E/AndroidRuntime(795): at java.lang.reflect.Method.invoke(Method.java:507) 
04-25 23:32:45.855: E/AndroidRuntime(795): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
04-25 23:32:45.855: E/AndroidRuntime(795): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
04-25 23:32:45.855: E/AndroidRuntime(795): at dalvik.system.NativeStart.main(Native Method) 
04-25 23:32:45.855: E/AndroidRuntime(795): Caused by: java.lang.reflect.InvocationTargetException 
04-25 23:32:45.855: E/AndroidRuntime(795): at java.lang.reflect.Method.invokeNative(Native Method) 
04-25 23:32:45.855: E/AndroidRuntime(795): at java.lang.reflect.Method.invoke(Method.java:507) 
04-25 23:32:45.855: E/AndroidRuntime(795): at android.view.View$1.onClick(View.java:2139) 
04-25 23:32:45.855: E/AndroidRuntime(795): ... 11 more 
04-25 23:32:45.855: E/AndroidRuntime(795): Caused by: java.lang.NullPointerException 

감사 : 여기

로그입니다!

+0

나머지 스택 추적을 로그에 게시 할 수 있습니까? 마지막 줄은 NullPointerException을 나타내며 근본 원인 일 수 있습니다. – elevine

+0

그 다음에 만이 부분이 나타납니다. 04-25 23 : 32 : 45.855 : E/AndroidRuntime (795) : com.gmat.app.AppActivity.onLogInButtonClicked (AppActivity.java:35) 줄 35는 connector.logIn() 메서드는 –

답변

0

커넥터 개체와 같은 소리가 null입니다. 그것을 초기화하거나 잘못 범위를 잊어 버렸습니까? 커넥터가 초기화 될 때 게시 위치를 찾는데 도움이되지 않는 경우 게시하십시오.

+0

이라고합니다. 단순히 게시 된 메서드 위에 커넥터 커넥터만으로 초기화했습니다. –

+0

@Gmat'커넥터 커넥터 '는 선언입니다. 'connector = new Connector();'는 초기화입니다. 아니면 같은 줄에서 둘 다 할 수 있습니다 :'Connector connector = new Connector(); ' – JRaymond

+0

정말 고마워요. 나는 지금 바보 같아서, 내가 쉬어야 할 것 같아. 다시 고마워. –

관련 문제