我正在开发一款应用程序,当我尝试连接MySQL数据库时使用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.
答案 0 :(得分:1)
从Android 4.x开始,UI线程不再允许网络操作。实现此目的是为了使UI整体响应更快,并防止“应用程序无响应”错误。由于mySQL对远程服务器的访问是网络操作,这可能是罪魁祸首。因此,您需要将代码从UI线程移动到AsyncTask或工作线程。