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

Android Studio连接SQL Server时应用崩溃提示GSSManager类缺失问题

问题根因
  • 你使用的jTDS SQL Server驱动默认会尝试调用Kerberos认证所需的org.ietf.jgss.GSSManager类,该类属于Java SE标准库,但Android运行环境并未内置该类,直接触发类找不到异常导致崩溃。
  • 你的JDBC连接URL存在语法错误:user参数后缺失等于号,导致账号信息无法被驱动正确识别。
  • 你直接在主线程执行数据库网络请求,即使修复崩溃问题,也会因为主线程阻塞出现卡顿,甚至触发ANR(应用无响应),你当前用StrictMode放行主线程网络属于违规临时操作,不符合Android开发规范。
修复步骤

1. 修改JDBC连接URL,禁用Kerberos认证

在连接URL中添加useNTLMv2=false、authentication=sql参数强制使用SQL Server账号密码认证,同时补上user后的等于号,修改后的连接字符串如下:

ConnectURL = "jdbc:jtds:sqlserver://"+ip+":"+port+";databasename="+db+";user="+username+";password="+password+";useNTLMv2=false;authentication=sql;";

如果修改后仍有认证相关报错,可以额外添加domain=;参数清空域配置,避免触发域认证逻辑。

2. 将数据库操作移到子线程执行

禁止在主线程执行网络IO操作,将注册逻辑放到子线程执行,操作完成后切回主线程更新UI,修改后的agregarUsuario方法示例:

public void agregarUsuario() {
    // 启动子线程执行数据库操作
    new Thread(() -> {
        try {
            Connection conn = conexionBD();
            if (conn == null) {
                // 切回主线程弹出错误提示
                runOnUiThread(() -> Toast.makeText(getApplicationContext(), "数据库连接失败", Toast.LENGTH_SHORT).show());
                return;
            }
            PreparedStatement pat = conn.prepareStatement("insert into usuarios values (?,?)");
            pat.setString(1, edtNombres.getText().toString());
            pat.setString(2, edtCorreo.getText().toString());
            pat.executeUpdate();
            // 切回主线程弹出成功提示
            runOnUiThread(() -> Toast.makeText(getApplicationContext(), "REGISTRO AGREGADO", Toast.LENGTH_SHORT).show());
            // 及时释放资源
            pat.close();
            conn.close();
        } catch (Exception e) {
            e.printStackTrace();
            runOnUiThread(() -> Toast.makeText(getApplicationContext(), e.getMessage(), Toast.LENGTH_SHORT).show());
        }
    }).start();
}

记得把conexionBD方法里的StrictMode相关代码删除,不要继续放行主线程网络操作。

3. 长期优化建议

不建议移动端直接直连SQL Server数据库,这种方案会把数据库账号密码明文打包在APK中,极易被反编译泄露,同时数据库端口直接对外暴露也存在严重的安全风险。更稳妥的方案是在服务端写HTTP接口,Android端调用接口完成数据的增删改查操作。


内容的提问来源于stack exchange,提问作者Ivan Lopez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 16:54:04