0

AndroidアプリケーションからMSSQLServer 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
        }
    }

ConnectorクラスのlogInメソッドは次のとおりです。

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;
    }

コンソールに「ログインメソッドがあります」と表示されることすらありません。メソッドが呼び出された行でクラッシュが発生しますが、アプリに入る前にクラッシュしたと推測されます。

ログは次のとおりです。

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

前もって感謝します!

4

1 に答える 1

0

コネクタオブジェクトがnullのようです。初期化するのを忘れたか、スコープを誤ってしましたか?コネクタを見つけるのに十分でない場合は、コネクタが初期化されている場所を投稿してください

于 2012-04-25T23:56:09.900 に答える