You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Studio无法连接PostgreSQL数据库问题排查求助

Android连接PostgreSQL失败排查方案

以下是针对你代码及环境的具体排查点和修复方案:

1. JDBC URL格式错误

你的代码中使用;分隔连接参数,这是错误的格式。PostgreSQL JDBC URL的参数需要用?开头,&分隔。修复后的URL代码:

ConURL = "jdbc:postgresql://" + ip + ":" + port + "/" + dbname
        + "?user=" + un + "&password=" + pass;

2. 主线程执行网络操作

Android禁止在UI主线程中执行网络请求,否则会触发NetworkOnMainThreadException。必须将数据库连接逻辑放到子线程中执行,示例代码:

new Thread(new Runnable() {
    @Override
    public void run() {
        Connection con = SQLConnection();
        // 数据库操作逻辑
        // 若需更新UI,需调用runOnUiThread回到主线程
        runOnUiThread(() -> {
            Toast.makeText(MainActivity.this, "连接成功", Toast.LENGTH_SHORT).show();
        });
    }
}).start();

3. 未添加网络权限

在AndroidManifest.xml中必须添加网络访问权限,否则应用无法访问局域网内的数据库:

<uses-permission android:name="android.permission.INTERNET"/>

4. 未正确引入PostgreSQL JDBC驱动

在Module的build.gradle文件中添加驱动依赖(选择与你的PostgreSQL服务器版本兼容的驱动版本,例如服务器为15.x时可使用42.6.x版本):

dependencies {
    implementation 'org.postgresql:postgresql:42.6.0'
}

添加后同步Gradle,确保驱动被正确下载。

5. PostgreSQL服务器配置问题

  • 检查postgresql.conf中的listen_addresses配置,需设置为*或包含Android设备所在的IP段(如192.168.100.0/24),默认仅监听本地localhost。
  • 检查pg_hba.conf,添加允许Android设备IP访问的规则,例如:
    host    testdb     test_user     192.168.100.0/24     scram-sha-256
    

修改完成后重启PostgreSQL服务。

6. 网络连通性验证

确保Android设备与PostgreSQL服务器处于同一局域网,通过设备的终端工具ping服务器IP(192.168.100.79),若无法ping通则检查网络配置、服务器防火墙设置。

内容的提问来源于stack exchange,提问作者Pongsakorn Lakhornpol

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 00:45:00