Этот код был написан после этого урока: http://www.techsono.com/consult/update-android-gui-timer/Почему я получаю незаконное исключение аргумента из этого кода?
Я не понимаю, почему я получаю незаконное исключение аргумента из этого кода, когда я пытаюсь и запустить его на устройстве. Я не уверен, что вызывает исключение из-за незаконных аргументов. Код, который я запускаю, - это моя попытка сделать клиент, который подключается к серверу по IP-адресу (этот IP-адрес будет изменен), чтобы получать информацию, а затем обновлять Android Gui, чтобы показать указанную информацию. Текстовые представления в стартовом макете - это то, что обновляется в gui, если это помогает?
Я извиняюсь заранее, если мое объяснение этого кажется немного запутанным, его просто очень запутывает для меня: 3 Я думаю, что понимаю, что делают коды, но какие-либо разъяснения в коде и почему он не работает, и что проблема была бы большой.
Heres мой код:
package com.example.clienttest;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;
import java.util.Timer;
import java.util.TimerTask;
import java.util.concurrent.TimeUnit;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.view.Menu;
import android.widget.TextView;
public class ClientTestMain extends Activity {
final Handler myHandler = new Handler();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_client_test_main);
Timer myTimer = new Timer();
myTimer.schedule(new TimerTask(){
@Override
public void run(){
UpdateGUI();}},0,0);
}
final Runnable myRunnable = new Runnable(){
@Override
public void run(){
TextView Header = (TextView) findViewById(R.id.textView4);
TextView Time = (TextView) findViewById(R.id.textView4);
TextView TrackId = (TextView) findViewById(R.id.textView4);
TextView Latitude = (TextView) findViewById(R.id.textView4);
TextView Longitude = (TextView) findViewById(R.id.textView4);
TextView Depth = (TextView) findViewById(R.id.textView4);
TextView Speed = (TextView) findViewById(R.id.textView4);
TextView Heading = (TextView) findViewById(R.id.textView4);
try{
while(true){
Socket infoSocket = new Socket("128.23.1.0", 2000);
InputStreamReader stream = new InputStreamReader(infoSocket.getInputStream());
BufferedReader reader = new BufferedReader(stream);
String message = reader.readLine();
String[] op = message.split(",");
Header.setText(op[0]);
Time.setText(op[1]);
TrackId.setText(op[2]);
Latitude.setText(op[3]);
Longitude.setText(op[4]);
Depth.setText(op[5]);
Speed.setText(op[6]);
Heading.setText(op[7]);
TimeUnit.SECONDS.sleep(1);
}
}catch(IOException ex){
ex.printStackTrace();
}catch (InterruptedException e) {
}
}};
private void UpdateGUI(){
myHandler.post(myRunnable);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.client_test_main, menu);
return true;
}
}
Heres мой LogCat:
09-04 12:04:23.453: D/AndroidRuntime(18628): Shutting down VM
09-04 12:04:23.453: W/dalvikvm(18628): threadid=1: thread exiting with uncaught exception (group=0x40bea1f8)
09-04 12:04:23.453: E/AndroidRuntime(18628): FATAL EXCEPTION: main
09-04 12:04:23.453: E/AndroidRuntime(18628): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.clienttest/com.example.clienttest.ClientTestMain}: java.lang.IllegalArgumentException
09-04 12:04:23.453: E/AndroidRuntime(18628): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1970)
09-04 12:04:23.453: E/AndroidRuntime(18628): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1995)
09-04 12:04:23.453: E/AndroidRuntime(18628): at android.app.ActivityThread.access$600(ActivityThread.java:128)
09-04 12:04:23.453: E/AndroidRuntime(18628): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1161)
09-04 12:04:23.453: E/AndroidRuntime(18628): at android.os.Handler.dispatchMessage(Handler.java:99)
09-04 12:04:23.453: E/AndroidRuntime(18628): at android.os.Looper.loop(Looper.java:137)
09-04 12:04:23.453: E/AndroidRuntime(18628): at android.app.ActivityThread.main(ActivityThread.java:4514)
09-04 12:04:23.453: E/AndroidRuntime(18628): at java.lang.reflect.Method.invokeNative(Native Method)
09-04 12:04:23.453: E/AndroidRuntime(18628): at java.lang.reflect.Method.invoke(Method.java:511)
09-04 12:04:23.453: E/AndroidRuntime(18628): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790)
09-04 12:04:23.453: E/AndroidRuntime(18628): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
09-04 12:04:23.453: E/AndroidRuntime(18628): at dalvik.system.NativeStart.main(Native Method)
09-04 12:04:23.453: E/AndroidRuntime(18628): Caused by: java.lang.IllegalArgumentException
09-04 12:04:23.453: E/AndroidRuntime(18628): at java.util.Timer.schedule(Timer.java:479)
09-04 12:04:23.453: E/AndroidRuntime(18628): at com.example.clienttest.ClientTestMain.onCreate(ClientTestMain.java:28)
09-04 12:04:23.453: E/AndroidRuntime(18628): at android.app.Activity.performCreate(Activity.java:4465)
09-04 12:04:23.453: E/AndroidRuntime(18628): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1053)
09-04 12:04:23.453: E/AndroidRuntime(18628): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1934)
09-04 12:04:23.453: E/AndroidRuntime(18628): ... 11 more
09-04 12:09:29.781: I/Process(18628): Sending signal. PID: 18628 SIG: 9
что линия 28 'ClientTestMain.java' Ваши милли секунд также 0 – Raghunandan