Java Android mysql 连接不适用于 4.0

标签 java android mysql

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

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

blip 似乎在这行代码上,就像我上面所说的那样,它适用于 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.

最佳答案

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

关于Java Android mysql 连接不适用于 4.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15563177/

相关文章:

java - 官方Java教程中的这句话是否不准确?

java - 在 Apache Tomcat 服务器上部署 GWT 应用程序时出现 500 内部服务器错误

mysql - SQL 在计数和分组依据中使用 CASE

mysql - 两个带左连接的计数相乘

php - 使用cmd保存带有DATE的mySQL文件

java - 计算子字符串,while循环

java - 如何检索关系表列的值

java - 非法参数异常 : GoogleApiClient parameter is required

android - 如何遍历 Android 中的所有 Activity 组件( View )

java - 通过布局充气器添加的按钮上的 onClickListener