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
감사 : 여기
로그입니다!
나머지 스택 추적을 로그에 게시 할 수 있습니까? 마지막 줄은 NullPointerException을 나타내며 근본 원인 일 수 있습니다. – elevine
그 다음에 만이 부분이 나타납니다. 04-25 23 : 32 : 45.855 : E/AndroidRuntime (795) : com.gmat.app.AppActivity.onLogInButtonClicked (AppActivity.java:35) 줄 35는 connector.logIn() 메서드는 –