2016-04-20 16 views
0

Ich habe ein Problem mit Android-Anwendung, die eine AsyncTask enthalten. Wenn ich versuche, es androidStudio zu debuggen bringe mich zu einem Abschnitt von Kommentaren von asynctask. Ich verstehe nicht, wenn dieses Problem durch Problem auf Bibliothek verursacht wird oder wenn das Problem auf der Logik der costruction ist: Ich habe eine Klasse, dieWarum wird meine AsyncTask-Klasse nicht debuggt?

-fetch eine ganze Zahl von UI dann

-Mittagessen AsyncTask, die verbinden auf einen Server und die Daten empfangen (Put seine auf eine Variable), dann

-redraw der ui und die Daten auf einem Textview

wie der Code dargestellt:

public class MainActivity extends Activity 
{ 
    LinearLayout spazioGen; 
    TextView[] cell; 
    LinearLayout[] rows; 
    LinearLayout def; 
    LinearLayout solution; 
    private Socket client; 
    private PrintWriter printwriter; 
    private BufferedReader in; 
    private EditText textField; 
    private TextView serverOut; 
    private Button button; 
    private String messsage; 
    private String inputLine; 
    private Integer dimensionChoosed = 10; 
    private String word1 = ""; 
    private String word2 = ""; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     textField = (EditText) findViewById(R.id.dimension);  
     button = (Button) findViewById(R.id.findCenter);    

     button.setOnClickListener(new View.OnClickListener() 
     { 
      public void onClick(View v) 
      { 
       messsage = textField.getText().toString(); // get the text message on the text field 
       textField.setText("");      // Reset the text field to blank 
       dimensionChoosed = Integer.parseInt(messsage.toString()); 
       SendMessage sendMessageTask = new SendMessage(); 
       sendMessageTask.execute(); 
       createGriglia(); 
      } 
     }); 
    } 

    private void createGriglia(Integer dimensionChoosed) 
    { 
     int i,j; 
     spazioGen = new LinearLayout(this); 
     spazioGen.setOrientation(LinearLayout.VERTICAL); 
     spazioGen.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)); 
     spazioGen.setBackgroundDrawable(getResources().getDrawable(R.drawable.border_ext)); 
     spazioGen.setPadding(5, 5, 5, 5); 

     //create an array of textview to fillup with data received from server 

     setContentView(spazioGen); 
    } 

    private class SendMessage extends AsyncTask<Void, Void, Void> 
    { 
     @Override 
     protected Void doInBackground(Void... params) 
     { 
      try 
      { 
       client = new Socket("192.168.0.104", 4444); // connect to the server 
       printwriter = new PrintWriter(client.getOutputStream(), true); 
       printwriter.println(messsage); // write the message to output stream 
       printwriter.flush(); 

       InputStreamReader inputStreamReader = new InputStreamReader(client.getInputStream()); 
       BufferedReader bufferedReader = new BufferedReader(inputStreamReader); // get the client message 
       String message = ""; 


       while ((message = bufferedReader.readLine()) != null && !(message.equals("flag"))) 
       { 
        word1 = message; 
        //do stuff with data received 
       } 

       while ((message = bufferedReader.readLine()) != null) 
       { 
        word2 = message; 
        //do stuff with data received 
       } 

       inputStreamReader.close(); 
       System.out.println(message); 
       printwriter.close(); 
       client.close(); // closing the connection 

      } catch (UnknownHostException e) 
      { 
       e.printStackTrace(); 
      } catch (IOException e) 
      { 
       e.printStackTrace(); 
      } 
      return null; 
     } 

     @Override 
     protected void onPostExecute(Void aVoid) 
     { 
      createGriglia(dimensionChoosed); 
     } 
    } 

} 

Vielen Dank im Voraus

+1

Löschen Sie Ihre App von Ihrem Gerät. Säubern Sie Ihr Projekt und installieren Sie die App erneut und sehen Sie, ob es Ihnen hilft. – Ahmed

+0

Keine Änderungen für sauberes Projekt ... jetzt versuche ich, die letzte Version von Android Studio neu zu starten und zu installieren ... – ocrampico

+0

Hält der Debugger die App an, wenn Sie einen Haltepunkt in Zeile 'client = new Socket (" 192.168.0.104 ") setzen, 4444); '? Wird die Ausnahme in einem der 'catch' Blöcke in' doInBackground' gefangen? Welche Art von Problem bekommen Sie? – kit

Antwort

0

Vielen Dank an alle, die mir helfen.
Ich habe dieses Problem gelöst, indem ich die neueste Version von Android Studio installiert habe.
Ich hoffe, das kann helfen, wer mein Problem bekam

Verwandte Themen