0

MySQL DBに接続しようとするときにAndroid 2.3.3を使用すると正常に動作するアプリに取り組んでいます。次に、Android 4.0 でテストを実行したところ、次の例外が発生しました。

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

ブリップは、上記のように 4.0 ではなく 2.3.3 で機能する次のコード行にあるようです。

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

Samsung 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 に答える