This question already has answers here:
What is a NullPointerException, and how do I fix it?

(12个答案)


在11个月前关闭。




我无法连接到数据库项目?我使用xampp phpMyAdmin作为数据库。我已经为我的项目创建了两个(2) Activity 。首先是mainActivity,其次是主页。 mainActivity是登录页面。我要进行可以连接到数据库的登录过程。

这是登录页面中用于登录按钮的onclickListener的代码。现在,我只是想连接到数据库。代码尚未完成:
login_bt.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Connection connnect=null;
        connnect = DatabaseConnection.ConnectDB();
        try {

            if((no_kt.getText().toString()).equals("123")||(password.getText().toString()).equals("pass")){

                LoginSuccess();

            }else{
                Toast.makeText(getApplicationContext(),"No K/Tangan atau Kata Laluan tidak sah",Toast.LENGTH_LONG).show();
            }

        }catch (Exception e){
                Toast.makeText(getApplicationContext(),e.toString(),Toast.LENGTH_LONG).show();
        }
    }
});

我还为数据库连接创建了一个类。这是该类中的代码:-

import android.os.StrictMode;
import java.sql.Connection;
import java.sql.DriverManager;

class ConnectionClass {

    public Connection ConnectDB(){

        StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
        StrictMode.setThreadPolicy(policy);
        Connection conn=null;

        try{
            Class.forName("com.mysql.jdbc.Driver");
            conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/pkb_db","user","password");

        }catch (Exception e){ }
        return conn;
    }
}

我认为一切都很好,但logcat中有一些错误,如下所示:
    Process: com.e.test, PID: 16114
    java.lang.NullPointerException: Attempt to invoke virtual method 'java.sql.Connection com.e.test.ConnectionClass.ConnectDB()' on a null object reference
        at com.e.test.MainActivity$3.onClick(MainActivity.java:78)
        at android.view.View.performClick(View.java:6597)
        at android.view.View.performClickInternal(View.java:6574)
        at android.view.View.access$3100(View.java:778)
        at android.view.View$PerformClick.run(View.java:25885)
        at android.os.Handler.handleCallback(Handler.java:873)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:193)
        at android.app.ActivityThread.main(ActivityThread.java:6669)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)

谁能帮我.....
Here is the screenshot for my working environment

最佳答案

按照您DatabaseConnection中的日志对象为null的原因,这就是为什么在调用DatabaseConnection.ConnectDB时引发抛出空指针异常的原因,请确保在调用DatabaseConnection方法之前正确初始化了ConnectDB()对象。

希望这会帮助你。

08-03 17:44