안드로이드 개발 질문/답변
(글 수 45,052)
안드로이드관련 책사서 이제 막 시작한 초보입니다.
책에 있는 쓰레드 관련 예제를 작성하여 실행했는데..."예상치 않게 중지되었습니다"라는 메시지가 뜨고 실행이 안되네요
코드 문제는 아닌거 같은데...에뮬레이터와 스마트폰 두곳에서 다 해봐도 안됩니다.
개발환경은 ... OS는 윈도우 XP, ADT와 이클립스는 구글사이트에서 다운 받았고, 자바버전은 1.7.0_10 입니다.
회원님들의 도움 부탁드립니다 ㅠ.ㅠ
코드와 에러 메시지 첨부합니다.
소스코드
package jerom.test;
import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.util.Log; import android.widget.*; import android.os.Handler; import android.os.Message;
public class MainActivity extends Activity {
private ProgressBar mProgress; private TextView textview; Handler handler = new Handler() { @Override public void handleMessage(Message msg){ textview.setText("스레드는 우리가 텍스트뷰의" + "문자열을 변경하는데 큰 영향을 주지 않습니다."); } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); new Thread( new Runnable() { public void run() { int i=0; while(true) { if (i>100) { Message message = handler.obtainMessage(); handler.sendMessage(message); break; } else { mProgress.setProgress(i); Log.i("log", String.valueOf(i)); } try { Thread.sleep(1000); i += 10; } catch(InterruptedException ie) { ie.printStackTrace(); } } } } ).start(); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.activity_main, menu); return true; } }
에러메시지
12-24 18:31:15.009: W/dalvikvm(17034): threadid=8: thread exiting with uncaught exception (group=0x400185a8) 12-24 18:31:15.009: E/AndroidRuntime(17034): FATAL EXCEPTION: Thread-9 12-24 18:31:15.009: E/AndroidRuntime(17034): java.lang.NullPointerException 12-24 18:31:15.009: E/AndroidRuntime(17034): at jerom.test.MainActivity$2.run(MainActivity.java:39) 12-24 18:31:15.009: E/AndroidRuntime(17034): at java.lang.Thread.run(Thread.java:1019) 12-24 18:43:44.079: W/dalvikvm(17515): threadid=8: thread exiting with uncaught exception (group=0x400185a8) 12-24 18:43:44.079: E/AndroidRuntime(17515): FATAL EXCEPTION: Thread-9 12-24 18:43:44.079: E/AndroidRuntime(17515): java.lang.NullPointerException 12-24 18:43:44.079: E/AndroidRuntime(17515): at jerom.test.MainActivity$2.run(MainActivity.java:40) 12-24 18:43:44.079: E/AndroidRuntime(17515): at java.lang.Thread.run(Thread.java:1019)
인터넷에서 timer 관련 예제 찾아서 해봐도 똑같습니다.
timer랑 thread 둘다 안되는데....같은 이유인거 같은데 아무리 뒤져도 모르겠습니다. ㅠ.ㅠ
공부 시작한지 2주 됐는데...벌써 위기입니다 . ㅎㅎ
소스코드 윗부분이 나뉘어져 있는데...붙여서 보시면 되요.
질문이 처음이라... ^^