게임하나만들고있는데
점수 ranking리스트를 Mysql 데이터베이스로 보내는 작업중입니다.
그런데 자꾸
12-24 01:27:00.205: V/Jeewon(1468): android.os.NetworkOnMainThreadException
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Log.v("Jang", "test");
thread.new doFileUpload(String.valueOf(mScore),name,time).doInBackground(null);
}
View에서 버튼누르면 저런식으로 파일전송되구요
Thread상의 파일전송부분은
class doFileUpload extends AsyncTask<Void,Void,Void>{
private String name;
private String score;
private String time;
public doFileUpload(String name,String score, String time){
Log.v("Jang", "into Cons");
this.name= name;
this.score = score;
this.time = time;
}
@Override
protected Void doInBackground(Void... params) {
// TODO Auto-generated method stub
Log.v("Jang", "into background");
try { //203.246.112.69
URL url = new URL(""http://***************/Android_ranking_upload.php");
HttpURLConnection httpURLCon = (HttpURLConnection)url.openConnection();
//kmu20!!
Log.v("Jang", "test11111111");
httpURLCon.setDefaultUseCaches(false);
httpURLCon.setDoInput(true);
httpURLCon.setDoOutput(true);
httpURLCon.setRequestMethod("POST");
httpURLCon.setRequestProperty("content-type", "application/x-www-form-urlencoded");
Log.v("Jang", "test2");
StringBuffer sb = new StringBuffer();
sb.append("name").append("=").append(name).append("&");
sb.append("score").append("=").append(score).append("&");
sb.append("time").append("=").append(time);
Log.v("Jang", "test3");
PrintWriter pw = new PrintWriter(new OutputStreamWriter(httpURLCon.getOutputStream(),"EUC-KR"));
pw.write(sb.toString());
pw.flush();
Log.v("Jang", "test4");
BufferedReader bf = new BufferedReader(new InputStreamReader(httpURLCon.getInputStream(),"EUC-KR"));
StringBuilder buff = new StringBuilder();
String line;
while((line = bf.readLine()) != null){
buff.append(line);
}
}catch (Exception e) {
Log.v("Jeewon", "Sending Error");
Log.v("Jeewon", e.toString());
}
return null;
}
}
로그찍어보니 Log.v("Jang", "test3"); 이부분까지가다가 예외처리가뜹니다 ㅠㅠ 도와주세요.
이것입니다. 도와주세요 ㅠㅠ...
그냥 쓰레드를 생성해서 사용하는게 더 나을겁니다