我正在开发一个应用程序,当我使用 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/