我正在开发的应用程序有问题。我正在尝试使用我在 android 上的应用程序连接到 WIFI 网络中本地的 Mysql 中的数据库。为此,我使用 mysql-connector-java 5.1.23 的直接方法。该应用程序在我的nexus one(Android 2.3)上运行良好。但不在我的nexus 7(Android 4.2)上。
我有错误:"com.mysql.jdbc.exceptions.jdbc4.communicationsexception communications link failure"
但是,使用我的nexus 7 上的市场应用程序(connect2sql),我可以轻松访问数据库。我猜(但我不明白)该错误与 Android 的版本有关(2.3 与 4.2)。有人已经遇到过这个问题吗?
非常感谢您在该主题上提供的任何帮助。
(我用Eclipse用JDK 1.6开发——目标API是17,对应Android 4.2)
这是代码:
package fr.apln.Rocketry_Challenge;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.SQLException;
public class testdirectmysql extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.screen_testphpmysql);
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection con = DriverManager.getConnection("jdbc:mysql://192.168.1.50:3306/Rocketry_Challenge_1", "android", "XXXXX");
Statement st = con.createStatement();
st.executeQuery("USE Rocketry_Challenge_1;");
Toast.makeText(this, "C'est passé", Toast.LENGTH_LONG).show();
ResultSet rs = st.executeQuery("SELECT * FROM projets;");
while(rs.next()) {
Toast.makeText(this, "Projet : "+rs.getString(2)+" / Club : "+rs.getString(3), Toast.LENGTH_LONG).show();
}
} catch (Exception e) {
Toast.makeText(this, String.valueOf(e), Toast.LENGTH_LONG).show();
}
}
}