我是新開發的android開發人員,我在第一次真正的嘗試和應用程序時遇到了困難。我正在嘗試製作一個簡單的計算器。但是,當我運行應用程序並輸入序列中的第二個數字以添加計算器時,模擬器會顯示「不幸的是,計算器已停止工作。」我看着logCat,有一堆紅色的錯誤,所以我不認爲我會發布所有這些錯誤。Android應用程序。簡單的計算器崩潰
我的代碼休耕:
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時,應用程序崩潰。我覺得自己只是在看一個簡單的錯誤。任何幫助是極大的讚賞。
提前致謝!
logcat的值:
2月5日至15日:39:30.047:d/gralloc_goldfish(540):仿真器,而不GPU仿真檢測。 (540):將堆棧跟蹤寫入'/ data/3' 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:W/dalvikvm(540):threadid = 1:線程退出時未捕獲的異常(group = 0x409c01f8) 05-15 02:39:46.437:E/AndroidRuntime(540) :致命例外:main 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):at android.content.res.Resources.getText(Resources.java:247) 05-15 02:39:46.437:E/AndroidRuntime(540):at 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):at android.view.View.performClick(View.java:3511) 05-15 02:39:46.437:E/AndroidRuntime(540):at 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):at android.os.Handler.dispatchMessage(Handler.java:92) 05- 15 02:39:46.437:E/AndroidRuntime(540):at android.os.Looper.loop(Looper.java:137) 05-15 02:39:46.437:E/AndroidRuntime(540):at android.app .ActivityT hread.main(ActivityThread.java:4424) 05-15 02:39:46.437:E/AndroidRuntime(540):at java.lang.reflect.Method.invokeNative(Native Method) 05-15 02:39:46.437 :E/AndroidRuntime(540):at java.lang.reflect.Method.invoke(Method.java:511) 05-15 02:39:46.437:E/AndroidRuntime(540):at com.android.internal.os .ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:784) 05-15 02:39:46.437:E/AndroidRuntime(540):at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 05-15 02:39:46.437:E/AndroidRuntime(540):at dalvik.system.NativeStart.main(Native Method) 05-15 02:39:47.077:I/dalvikvm(540):threadid = 3:到信號3 05-15 02:39:47.097:I/dalvikvm(540):將堆棧跟蹤寫入'/data/anr/traces.txt'
對不起logCat的格式。
「所以我不認爲我會發布所有這些」 - 您可能想要發佈至少幾個。雖然Raymond Chen將心理調試歸結爲美術,但並不是每個人都裝備精良:-)一些信息通常比沒有一個好。 – paxdiablo
而且:'acuum'似乎對我來說不協調,一個累加器會被稱爲'accum'(儘管與你的問題無關)。但是另外兩種可能性,增加一個字符串和一個字符(比如''2') - 是猶太教(太累了,現在看起來不太好)?而且,我懷疑'newValue'應該被初始化爲'true'而不是'false'(也很疲倦,看看顯示器是否默認爲空字符串)。 – paxdiablo
感謝您的快速回復! 我會拋出一些錯誤: – Allz69