Я уже некоторое время пользуюсь mysql, и нет проблем с соединением между компьютерами.
Я недавно практикуюсь в Android Studio.
Ссылочный URL: https://www.youtube.com/watch?v=EZshEey2feg
Я выполняю на Android Studio, совершенно без ошибок, без ошибок
Но я упаковал его в установку .apk, выполнил
Сразу неожиданный выход, без предупреждения
Я обнаружил, что при чтении данных mysql он неожиданно завершит работу
Мой код
[MainActivity.java]
private Runnable runTimerStop = new Runnable() {
@Override
public void run() {
select(null);
}
};
public void select(String id) {
try {
String r = DBphp.DBstring(id,cookieStr,url);
JSONArray jsonArray = new JSONArray(r);
List<Map<String,Object>> items = new ArrayList<Map<String, Object>>();
for (int i = 0 ; i < jsonArray.length() ; i++){
JSONObject jsonData = jsonArray.getJSONObject(i);
Map<String,Object> item = new HashMap<String,Object>();
item.put("ID",jsonData.getString("ID"));
item.put("Name",jsonData.getString("Name"));
item.put("m1",jsonData.getString("m1"));
item.put("m2",jsonData.getString("m2"));
item.put("m3",jsonData.getString("m3"));
items.add(item);
}
SimpleAdapter SA = new SimpleAdapter(context,items,R.layout.list_text, new String[]{"ID", "Name", "m1", "m2", "m3"}, new int[]{R.id.text0, R.id.text1, R.id.text2, R.id.text3, R.id.text4});
LV1.setAdapter(SA);
} catch (Exception e) {
Log.e("log_tag", e.toString());
}
}
[DBphp.java]
public class DBphp {
private static HttpClient hC;
private static HttpPost hP;
public static String DBstring(String i, String Wcook, String url){
String result="Error";
try{
hC = new DefaultHttpClient();
hP = new HttpPost(url+"/index.php");
hP.addHeader("Cookie",Wcook+";expires=thu,31-Dec-37 23:55:55 GMT; path=/");
ArrayList<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("S1",i));
hP.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));
HttpResponse hR = hC.execute(hP);
HttpEntity hE = hR.getEntity();
InputStream inputStream = hE.getContent();
BufferedReader bufReader = new BufferedReader(new InputStreamReader(inputStream, HTTP.UTF_8),8);
StringBuilder builder = new StringBuilder();
String line=null;
while ((line = bufReader.readLine()) != null){
builder.append(line+"\n");
}
inputStream.close();
result = builder.toString();
}catch (Exception e){
result=e.toString();
}finally {
hC.getConnectionManager().shutdown();
}
return result;
}
}
[SQL_data.php]
<?PHP
$hostname = "192.168.1.240";
$username = "AppUser";
$password = "root";
$database = "text";
$GD = mysqli_connect($hostname, $username, $password) or trigger_error(mysqli_error(), E_USER_ERROR);
//UTF8
mysqli_query($GD, "SET NAMES UTF8");
mysqli_query($GD, "SET CHARACTER_SET_CLIENT='utf8'");
mysqli_query($GD, "SET CHARACTER_SET_RESULTS='utf8'");
?>
[index.php]
<?php
require_once("SQL_data.php");
$sql="SELECT * FROM `text1` ORDER BY `ID`DESC;";
mysqli_select_db($GD,$database);
$Result=mysqli_query($GD,$sql) or die(mysqli_error($GD));
while($r = mysqli_fetch_assoc($Result))
$output[]=$r;
header('Content-type: application/json; charset=utf-8');
print(json_encode($output,JSON_UNESCAPED_UNICODE));
exit();
mysql_close();
?>
Почему это происходит?Пожалуйста, помогите мне.