Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/198.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何克服java.lang.NullPointerException:尝试调用虚拟方法';java.sql.Connection';在空对象引用上?_Java_Android_Error Handling - Fatal编程技术网

如何克服java.lang.NullPointerException:尝试调用虚拟方法';java.sql.Connection';在空对象引用上?

如何克服java.lang.NullPointerException:尝试调用虚拟方法';java.sql.Connection';在空对象引用上?,java,android,error-handling,Java,Android,Error Handling,我无法连接到我的数据库项目?我使用xampp phpMyAdmin作为我的数据库。我已经为我的项目创建了两(2)个活动。第一个是main活动,第二个是主页。主要活动是登录页面。我想让登录过程,可以连接到数据库 以下是登录页面中onclickListener for login按钮的代码。现在我只是想连接到数据库。代码尚未完成:-- 我还为数据库连接创建了一个类。以下是该类中的代码:-- 我认为一切正常,但logcat中有一些错误,如下所示:-- 谁能帮帮我请 根据您的日志,DatabaseCon

我无法连接到我的数据库项目?我使用xampp phpMyAdmin作为我的数据库。我已经为我的项目创建了两(2)个活动。第一个是main活动,第二个是主页。主要活动是登录页面。我想让登录过程,可以连接到数据库

以下是登录页面中onclickListener for login按钮的代码。现在我只是想连接到数据库。代码尚未完成:--

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

我认为一切正常,但logcat中有一些错误,如下所示:--

谁能帮帮我

根据您的日志,
DatabaseConnection
中的对象是空的,因此当您调用
DatabaseConnection时,它会抛出空指针异常。ConnectDB
在调用
ConnectDB()
方法之前,请确保正确初始化
DatabaseConnection
对象


希望这对您有所帮助。

连接数据库时不要忽略异常我不了解异常。。。你能告诉我它是什么吗?可能是因为连接失败了?@IzzatFaris你的变量connect从未被使用如果变量connect没有被使用,它与连接有什么关系?我已经在main活动开始时声明了DatabaseConnection,比如“ConnectionClass DatabaseConnection”能否共享DatabaseConnection初始化代码。ConnectionClass DatabaseConnection=null;数据库连接已为空。。。你不能用空引用调用任何方法。那么我应该怎么做呢?如果我只放了ConnectionClass DatabaseConnection,也会出现smae错误。。
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;
    }
}
    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)