나는 안드로이드 개발을 처음 접했고, 나는 나의 첫 번째 실제 시도와 응용에 걸림돌을 만났다. 나는 간단한 계산기를 만들려고 노력하고있다. 그러나 응용 프로그램을 실행하고 시퀀스에 두 번째 숫자를 입력하면 에뮬레이터에 계산기가 추가됩니다. "불행히도 계산기가 작동을 멈췄습니다." 나는 logCat을 보았고 빨간 오류가 발생하여 모든 것을 게시 할 것이라고 생각하지 않습니다.Android App. Simple Calculator Crashing
내 코드 휴한지과 같습니다
package com.example.helloandroid;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.Button;
import android.widget.EditText;
import android.view.View.OnClickListener;
import android.widget.Toast;
import android.content.Context;
import android.view.View;
public class HelloAndroidActivity extends Activity {
EditText helloName;
/** Called when the activity is first created. */
int value = 0;
int acuum = 0;
boolean newValue = false;
Button add, sub, mult, div, equ, one, two, three;
TextView display;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
add = (Button) findViewById(R.id.Add);
sub = (Button) findViewById(R.id.Sub);
mult= (Button) findViewById(R.id.Mult);
div = (Button) findViewById(R.id.Div);
equ = (Button) findViewById(R.id.Equ);
one = (Button) findViewById(R.id.One);
two = (Button) findViewById(R.id.Two);
three = (Button) findViewById(R.id.Three);
display = (TextView) findViewById(R.id.Value);
add.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
value = Integer.parseInt(display.getText().toString());
acuum += value;
newValue = true;
}
});
sub.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
value = Integer.parseInt(display.getText().toString());
acuum -= value;
newValue = true;
}
});
one.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if(newValue == true)
display.setText('1');
else
display.setText(display.getText().toString() + '1');
newValue = false;
}
});
two.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if(newValue == true)
display.setText('2');
else
display.setText(display.getText().toString() + '2');
newValue = false;
}
});
}
}
그냥 시도하고 더 명확하게. 1 + 2를 입력하면 2를 클릭하면 앱이 다운됩니다. 나는 그것이 지나치게 단순한 실수 인 것처럼 느낀다. 어떤 도움이라도 대단히 감사합니다.
감사합니다.
로그 캣 값 :
2월 5일부터 15일까지 : 39 : 30.047 : D/gralloc_goldfish (540) : GPU 에뮬레이션없이 에뮬레이터가 검출. 05-15 02 : 39 : 30.097 : I/dalvikvm (540) : threadid = 3 : 신호 3에 반응 05-15 02 : 39 : 30.128 : I/dalvikvm (540) : 스택 추적을 '/ data/anr/traces.txt ' 05-15 02 : 39 : 46.427 : W/ResourceType (540) : 리소스 번호 0x00000032에 대한 값을 가져올 때 패키지 식별자 없음 05-15 02 : 39 : 46.427 : D/AndroidRuntime (540) : VM 종료 중 05-15 02 : 39 : 46.427 : dalvikvm (540) : threadid = 1 : catch되지 않은 예외 (그룹 = 0x409c01f8)로 종료하는 스레드 05-15 02 : 39 : 46.437 : E/AndroidRuntime (540) : 치명적인 예외 : 주 05-15 02 : 39 : 46.437 : E/AndroidRuntime (540) : android.content.res.Resources $ NotFoundException : 문자열 리소스 ID # 0x32 05-15 02 : 39 : 46.437 : E/AndroidRuntime (540) : android.content.res.Resources.getText (Resources.java:247) 05-15 02 : 39 : 46.437 : E/AndroidRuntime (540) : android.widget.TextView.setText (TextView.java:3473) 05-15 02 : 39 : 46.437 : E/AndroidRuntime (540) : at com.example.helloandroid.HelloAndroidActivity $ 4.onClick (HelloAndroidActivity.java:80) 05-15 02 : 39 : 46.437 : E/AndroidRuntime (540) : android.view.View.performClick (View.java:3511) 05 : 02 : 39 : 46.437 : E/AndroidRuntime (540) : android.view.View $ PerformClick.run (View.java:14105) 05-15 02 : 39 : 46.437 : E/AndroidRuntime (540) : android.os.Handler.handleCallback (Handler.java:605) 05-15 02 : 39 : 46.437 : E/AndroidRuntime (540) : android.os.Handler.dispatchMessage (Handler.java:92) 05- 15 02 : 39 : 46.437 : E/AndroidRuntime (540) : android.os.Looper.loop (Looper.java:137) 05-15 02 : 39 : 46.437 : E/AndroidRuntime (540) : android.app . 활동 T hread.main (ActivityThread.java:4424)05-15 02 : 39 : 46.437 : E/AndroidRuntime (540) : java.lang.reflect.Method.invoke (Method.java:511) 05-15 02 : 39 : 46.437 : E/AndroidRuntime (540) : com.android.internal.os에서 .ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:784) 05-15 02 : 39 : 46.437 : E/AndroidRuntime (540) : com.android.internal.os.ZygoteInit.main (ZygoteInit.java:551) 0535 02 : 39 : 46.437 : E/AndroidRuntime (540) : dalvik.system.NativeStart.main (기본 메소드) 05-15 02 : 39 : 47.077 : I/dalvikvm (540) : threadid = 3 : 반응 중 3/신호 3 05-15 02 : 39 : 47.097 : I/dalvikvm (540) : 스택 추적을 '/data/anr/traces.txt'에 씁니다.
죄송합니다. logCat의 형식이 잘못되었습니다.
"그래서 나는 그들 모두를 게시 할 것 같지 않습니다."- 당신은 적어도 몇 가지를 올리고 싶을 것입니다. 레이몬드 첸 (Raymond Chen)이 심령술을 파인 아트로 디버깅하는 동안 모든 사람이 잘 준비되어있는 것은 아닙니다 :-) 그리고 어떤 정보는 대개 어떤 것보다 낫습니다. – paxdiablo
그리고 :'acuum'이 나에게 어색한 것처럼 보입니다. 누적 기는'accum'라고 불릴 것입니다. (문제는 아닐지라도). 그러나 문자열과 숯 ("2"와 같은)을 추가하는 다른 두 가지 가능성은 - 정성을 다하는 사람 (그 순간을보기에는 너무 지쳤습니다)입니까? 그리고,'newValue'가'false'보다는'true'로 초기화되어야한다고 생각합니다. (또한 디스플레이가 빈 문자열로 기본 설정되어 있는지보기에는 너무 지쳤습니다.) – paxdiablo
빠른 답장을 보내 주셔서 감사합니다! 몇 가지 오류가 발생합니다 : – Allz69