마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

강제종료 현상 에러를 못 잡겠습니다

0 추천




	int i;
		
		int [] temp = new int[13];
		
		String [] it3_value = {"it3_value1","it3_value2","it3_value3","it3_value4","it3_value5","it3_value6","it3_value7",
				"it3_value8","it3_value9","it3_value10","it3_value11","it3_value12","it3_value13"};
		String [] str_value = {str_ability1,str_ability2,str_ability3,str_ability4,str_ability5,str_ability6,str_ability7,
				str_ability8,str_ability9,str_ability10,str_ability11,str_ability12,str_ability13};
		
		int [] id = {R.id.edit_value1,R.id.edit_value2,R.id.edit_value3,R.id.edit_value4,R.id.edit_value5,R.id.edit_value6,R.id.edit_value7,
				R.id.edit_value8,R.id.edit_value9,R.id.edit_value10,R.id.edit_value11,R.id.edit_value12,R.id.edit_value13};
		
		TextView text[]={txt_ability1,txt_ability2,txt_ability3,txt_ability4,txt_ability5,txt_ability6,txt_ability7,
				txt_ability8,txt_ability9,txt_ability10,txt_ability11,txt_ability12,txt_ability13};
		
		int someColor1 = Color.rgb(72,69,188);//100~110
	 	int someColor2 = Color.rgb(24,87,203);//90~99
	 	int someColor3 = Color.rgb(32,132,189);//80~89
	 	int someColor4 = Color.rgb(255,255,255);//70~79
	 	int someColor5 = Color.rgb(93,103,114);//60~69
	 	int someColor6 = Color.rgb(64, 64, 64);
	 	Log.d(tag,"컬러값");
	 	for(i=1;i<14;i++)
		{
	 		Log.d(tag,"컬러값44444444");
	 		str_value[i]=it3.getStringExtra(it3_value[i]);
	 		Log.d(tag,"컬러6");
			text[i]=(TextView)findViewById(id[i]);
	 		Log.d(tag,"컬러값5");
///컬러값5 까지 로그에 나오고 그 이후부터 에러입니ㅏ다.
			temp[i]=Integer.parseInt(str_value[i]);
			
			Log.d(tag,"컬러값7");
			Log.d(tag,"포문 변수");
		 	if( (99 < temp[i] )&& (temp[i] < 111 ) ) {
		 		text[i].setTextColor(someColor1);
			} else if ((89 < temp[i]) && (temp[i] < 100)) {
				text[i].setTextColor(someColor2);
			} else if ((79 < temp[i]) && (temp[i] < 90)) {
				text[i].setTextColor(someColor3);
			} else if ((69 < temp[i]) && (temp[i] < 80)) {
				text[i].setTextColor(someColor4);
			} else if ((59 < temp[i]) && (temp[i] < 70)) {
				text[i].setTextColor(someColor5);
			} else {
				text[i].setTextColor(someColor6);
			}
		 	Log.d(tag,"결과오나료");
		}

로그캣을 보니 포문에서 에러가 나느거 같은데 원인을 잘 모르겠씁니다.  

 

로그캣 입니다.

 

 

브루스웨인 (8,580 포인트) 님이 2013년 6월 6일 질문

2개의 답변

0 추천
 
채택된 답변
파싱하는 문자열이 숫자가 아니거나 공백이여서 그렇습니다

로그캣 상에서는 공백을 integer로 파싱하려고 시도해서 에러가 났습니다.

 

tyr문으로 예외처리 해주시고

catch 문에서올바른 숫자를 입력하라고 토스트를 띄워주시거나 하면 되실거에요
Noizbuster (11,970 포인트) 님이 2013년 6월 6일 답변
브루스웨인님이 2013년 6월 13일 채택됨
문자열이 전혀 숫자가 아니거나 공백도 없는데 왜 이러는 건지 모르겠네요.ㅠㅠ
파라미터를 toString 해서 한번 넣어보셔요
0 추천

 

 

로그캣입니다.

06-06 15:32:24.393: W/dalvikvm(22043): threadid=1: thread exiting with uncaught exception (group=0x400208b0)

06-06 15:32:24.452: E/AndroidRuntime(22043): FATAL EXCEPTION: main
06-06 15:32:24.452: E/AndroidRuntime(22043): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.faceon/com.example.faceon.ResultActivity}: java.lang.NumberFormatException: unable to parse '' as integer
06-06 15:32:24.452: E/AndroidRuntime(22043):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2768)
06-06 15:32:24.452: E/AndroidRuntime(22043):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2784)
06-06 15:32:24.452: E/AndroidRuntime(22043):  at android.app.ActivityThread.access$2500(ActivityThread.java:129)
06-06 15:32:24.452: E/AndroidRuntime(22043):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2117)
06-06 15:32:24.452: E/AndroidRuntime(22043):  at android.os.Handler.dispatchMessage(Handler.java:99)
06-06 15:32:24.452: E/AndroidRuntime(22043):  at android.os.Looper.loop(Looper.java:143)
06-06 15:32:24.452: E/AndroidRuntime(22043):  at android.app.ActivityThread.main(ActivityThread.java:4732)
06-06 15:32:24.452: E/AndroidRuntime(22043):  at java.lang.reflect.Method.invokeNative(Native Method)
06-06 15:32:24.452: E/AndroidRuntime(22043):  at java.lang.reflect.Method.invoke(Method.java:521)
06-06 15:32:24.452: E/AndroidRuntime(22043):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
06-06 15:32:24.452: E/AndroidRuntime(22043):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
06-06 15:32:24.452: E/AndroidRuntime(22043):  at dalvik.system.NativeStart.main(Native Method)
06-06 15:32:24.452: E/AndroidRuntime(22043): Caused by: java.lang.NumberFormatException: unable to parse '' as integer
06-06 15:32:24.452: E/AndroidRuntime(22043):  at java.lang.Integer.parseInt(Integer.java:412)
06-06 15:32:24.452: E/AndroidRuntime(22043):  at java.lang.Integer.parseInt(Integer.java:382)
06-06 15:32:24.452: E/AndroidRuntime(22043):  at com.example.faceon.ResultActivity.onCreate(ResultActivity.java:225)
06-06 15:32:24.452: E/AndroidRuntime(22043):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
06-06 15:32:24.452: E/AndroidRuntime(22043):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2732)
06-06 15:32:24.452: E/AndroidRuntime(22043):  ... 11 more
 

 

브루스웨인 (8,580 포인트) 님이 2013년 6월 6일 답변
Caused by: java.lang.NumberFormatException: unable to parse '' as integer
ResultActivity.onCreate(ResultActivity.java:225)
한번살펴보세요.
temp[i]=Integer.parseInt(str_value[i]);

225줄이 이 부분인데 잘못된점을 모르곘습니다..ㅜ
다른분 말씀이 정답인거 같아요 ㅎ;
...