Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.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.sql.SQLException:与postgres交互的android应用程序中没有合适的驱动程序错误_Java_Android_Sql_Postgresql_Jdbc - Fatal编程技术网

java.sql.SQLException:与postgres交互的android应用程序中没有合适的驱动程序错误

java.sql.SQLException:与postgres交互的android应用程序中没有合适的驱动程序错误,java,android,sql,postgresql,jdbc,Java,Android,Sql,Postgresql,Jdbc,我正在学习一个将Android应用程序连接到PostgresSQL db的教程,教程在这里,然后我有以下代码: package com.example.helllopostgresql; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import andr

我正在学习一个将Android应用程序连接到PostgresSQL db的教程,教程在这里,然后我有以下代码:

package com.example.helllopostgresql;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.widget.TextView;

public class HelloPostgreSQLActivity extends Activity {
    TextView resultArea;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        resultArea = new TextView(this);
        resultArea.setText("Please wait.");
        setContentView(resultArea);
        new FetchSQL().execute();
    }
    private class FetchSQL extends AsyncTask<Void,Void,String> {
        @Override
        protected String doInBackground(Void... params) {
            String retval = "";
            try {
                Class.forName("org.postgresql.Driver");
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
                retval = e.toString();
            }
            String url = "jdbc:postgresql://10.0.2.2/dbname?user=username&password=pass";
            Connection conn;
            try {
                DriverManager.setLoginTimeout(5);
                conn = DriverManager.getConnection(url);
                Statement st = conn.createStatement();
                String sql;
                sql = "SELECT 1";
                ResultSet rs = st.executeQuery(sql);
                while(rs.next()) {
                    retval = rs.getString(1);
                }
                rs.close();
                st.close();
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
                retval = e.toString();
            }
            return retval;
        }
        @Override
        protected void onPostExecute(String value) {
            resultArea.setText(value);
        }
    }
}
package com.example.helllopostgresql;
导入java.sql.Connection;
导入java.sql.DriverManager;
导入java.sql.ResultSet;
导入java.sql.SQLException;
导入java.sql.Statement;
导入android.app.Activity;
导入android.os.AsyncTask;
导入android.os.Bundle;
导入android.widget.TextView;
公共类HelloPostgreSQLActivity扩展了活动{
文本视图结果区;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
resultArea=新文本视图(此);
resultArea.setText(“请稍候”);
setContentView(resultArea);
新建FetchSQL().execute();
}
私有类FetchSQL扩展异步任务{
@凌驾
受保护字符串doInBackground(无效…参数){
字符串retval=“”;
试一试{
Class.forName(“org.postgresql.Driver”);
}catch(classnotfounde异常){
e、 printStackTrace();
retval=e.toString();
}
String url=“jdbc:postgresql://10.0.2.2/dbname?user=username&password=pass";
连接接头;
试一试{
DriverManager.setLoginTimeout(5);
conn=DriverManager.getConnection(url);
语句st=conn.createStatement();
字符串sql;
sql=“选择1”;
结果集rs=st.executeQuery(sql);
while(rs.next()){
retval=rs.getString(1);
}
rs.close();
圣克洛斯();
康涅狄格州关闭();
}捕获(SQLE异常){
e、 printStackTrace();
retval=e.toString();
}
返回返回;
}
@凌驾
受保护的void onPostExecute(字符串值){
resultArea.setText(值);
}
}
}
应用程序正常启动,但在“请稍候…”出现错误java.sql.SQLException:没有合适的驱动程序后 当然,我导入了带有库的jar文件,ADT可以识别它们,因为我可以在“引用库”中看到项目结构中的库。 我在网上读到,当没有“Class.forName(“org.postgresql.Driver”)”部分时,错误通常是一个问题。当然,我更改了url字符串中的所有参数,您可以在代码中看到这些参数。
我能做什么?我真的不知道该怎么办,因为我检查了所有可能的问题,但似乎我无法解决这个问题,而且似乎我做的都是正确的,我还尝试了从我链接的站点的完整复制/粘贴!。。。提前感谢您的帮助

是否检查jar文件是否存在于该引用位置。

是否检查jar文件是否存在于该引用位置。

我解决了问题!当我将外部jar添加到库中时,它位于项目文件夹之外的路径中,这是我的错!(然而,主要的错误是编译项目的Eclipse:-D)我复制并粘贴了libs目录下带有库的.jar,我不再有错误了!
谢谢大家

我解决了这个问题!当我将外部jar添加到库中时,它位于项目文件夹之外的路径中,这是我的错!(然而,主要的错误是编译项目的Eclipse:-D)我复制并粘贴了libs目录下带有库的.jar,我不再有错误了!
谢谢大家

是的,当然,正如我在帖子中所说的,这个库在引用下显示正确,它也可以正常工作,因为adt检测到它,然后在我编写代码时它会向我提供建议!是的,当然,正如我在帖子中所说的,这个库在引用下显示正确,它也可以正常工作,因为adt检测到它,然后在我编写代码时它会向我提供建议!