0

我正在开发一个应用程序,当我在尝试连接到 MySQL DB 时使用 Android 2.3.3 时它工作正常。然后我用 Android 4.0 进行了测试,它给了我这个异常:

com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server

提示似乎在这行代码上,就像我上面所说的,它适用于 2.3.3 而不是 4.0:

conn = DriverManager.getConnection(DB_URL, USER, PASS);

我什至尝试在我的三星 Galaxy S3 上运行该应用程序,看看它是否可以正常工作,但没有成功。它没有崩溃,只是抛出了上述异常。有谁知道为什么要这样做。如果我没有提供足够的信息,请让我知道我还需要指定什么以使这一点更清楚。

我正在使用的 mysql 连接器在这里:

mysql-connector-java-5.1.23-bin.jar

我希望这有助于试图找出问题所在。

代码:

...
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
...

try {
        // STEP 2: Register JDBC driver
        Class.forName(JDBC_DRIVER);

        // STEP 3: Open a connection
        conn = DriverManager.getConnection(DB_URL, USER, PASS);  << here is the exception it is telling me.
4

1 回答 1

1

从 Android 4.x 开始,不再允许在 UI 线程上进行网络操作。这是为了使 UI 整体响应更快,并防止“应用程序无响应”错误。由于 mySQL 对远程服务器的访问是网络操作,因此这很可能是罪魁祸首。因此,您需要将代码从 UI 线程移至AsyncTask或工作线程。

于 2013-03-22T13:51:35.433 回答