私は値を取得するためにAndroidエミュレータとMySQLデータベースを接続する必要がある最後のプロジェクトを開発中です。 Javaファイル:MySQLとのAndroid接続
public class connectivity extends Activity {
/** Called when the activity is first created. */
TextView txt;
public static final String KEY_121 = "http://10.0.2.2/mysqlcon.php";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
LinearLayout rootLayout = new LinearLayout(getApplicationContext());
txt = new TextView(getApplicationContext());
rootLayout.addView(txt);
setContentView(rootLayout);
// Set the text and call the connect function.
txt.setText("Connecting...");
// call the method to run the data retreival
txt.setText(getServerData(KEY_121));
}
private String getServerData(String returnString) {
InputStream is = null;
String result = null;
// the year data to send
ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("year", "1970"));
// http post
try {
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(KEY_121);
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
} catch (Exception e) {
Log.e("log_tag", "Error in http connection " + e.toString());
}
// convert response to string
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(is, "iso-8859-1"), 8);
StringBuilder sb = new StringBuilder();
String line = "0";
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
is.close();
result = sb.toString();
} catch (Exception e) {
Log.e("log_tag", "Error converting result " + e.toString());
}
// parse json data
try {
JSONArray jArray = new JSONArray(result);
JSONObject json_data = null;
for (int i = 0; i < jArray.length(); i++) {
json_data = jArray.getJSONObject(i);
Log.i("log_tag", "id: " + json_data.getInt("id") + ", name: " + json_data.getString("name") + ", sex: " + json_data.getInt("sex") + ", birthyear: " + json_data.getInt("birthyear"));
// Get an output to the screen
returnString += "\n\t" + jArray.getJSONObject(i);
}
} catch (JSONException e) {
Log.e("log_tag", "Error parsing data " + e.toString());
}
return returnString;
}
}
私も自分のAndroidのマニフェストファイルでのインターネットのアクセス許可を与えています。
解析エラーデータorg.json.JSONException:JSONArraytextは文字0
で、私はこれがに行くと思います「[」で開始する必要がありますが、アプリケーションを実行した後、私はlogcatで次のエラーを取得しますヌル値が返されていることを示します。これが私の最後の年のプロジェクトであるので、私を助けてください。私は解決策を見つけるのに何時間も費やしてきたが、それは役に立たなかった。
現在Android 2.2を使用しています。 wampサーバはlocalhost上にあるので、localhost(127.0.0.1)の特別なエイリアスである10.0.2.2というアドレスを使用しています。どんな助けでも本当に感謝します。ここで
は、PHPのコードです:
<?php
mysql_connect("127.0.0.1","root","chetan");
mysql_select_db("db1");
$q=mysql_query("SELECT * FROM people WHERE birthyear>'".$_REQUEST['year']."'");
while($e=mysql_fetch_assoc($q))
$output[]=$e;
print(json_encode($output,JSON_FORCE_OBJECT));
mysql_close();
uhh ..ええ..ここでは.phpのコードが助けになるでしょう... – ethrbunny
ちょっと私は、ブラウザ上のポストメソッドを使ってPHPファイルを実行していると言っています。[{"" id ":" 1 "、"誕生日 "、" 1972 "}、{" id ":" 2 "、" name ":" tanvi "、" sex ":" 0 "、" birthyear ":" 1974 "}]私はそのnull null値を返すとは思わない...だから何が問題になる可能性があります – chetan