的Integer.parseInt力关闭我的Android应用程序,关闭
这里是我的原代码:的Integer.parseInt力关闭我的Android应用程序,关闭
final EditText t1 = (EditText)findViewById(R.id.editText1);
int a = Integer.parseInt(t1.getText().toString());
现在有了这个代码,我得到强制关闭,当我在模拟器上运行。
所以我把它serperated这个
String s = t1.getText().toString();
一切进展正常,但是当我将其更改为:
String s = t1.getText().toString();
int a = Integer.parseInt(s);
然后再次发力关闭。
编辑:
我有这样的一个按钮,点击收听代码:
button.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
int a = 0;
int b = 0;
try
{
a = Integer.parseInt(t1.getText().toString());
b = Integer.parseInt(t2.getText().toString());
}
catch(NumberFormatException e)
{
alert.show();
}
}
});
但是,当我把它,它正确地捕捉到了异常。给我一分钟,生病logcat。
07-26 07:54:14.360: ERROR/AndroidRuntime(711): FATAL EXCEPTION: main
07-26 07:54:14.360: ERROR/AndroidRuntime(711): android.content.res.Resources$NotFoundException: String resource ID #0x7
07-26 07:54:14.360: ERROR/AndroidRuntime(711): at android.content.res.Resources.getText(Resources.java:201)
07-26 07:54:14.360: ERROR/AndroidRuntime(711): at android.widget.TextView.setText(TextView.java:2857)
07-26 07:54:14.360: ERROR/AndroidRuntime(711): at com.testing.test2.Test2Activity$1.onClick(Test2Activity.java:47)
07-26 07:54:14.360: ERROR/AndroidRuntime(711): at android.view.View.performClick(View.java:2485)
07-26 07:54:14.360: ERROR/AndroidRuntime(711): at android.view.View$PerformClick.run(View.java:9080)
07-26 07:54:14.360: ERROR/AndroidRuntime(711): at android.os.Handler.handleCallback(Handler.java:587)
07-26 07:54:14.360: ERROR/AndroidRuntime(711): at android.os.Handler.dispatchMessage(Handler.java:92)
07-26 07:54:14.360: ERROR/AndroidRuntime(711): at android.os.Looper.loop(Looper.java:123)
07-26 07:54:14.360: ERROR/AndroidRuntime(711): at android.app.ActivityThread.main(ActivityThread.java:3683)
07-26 07:54:14.360: ERROR/AndroidRuntime(711): at java.lang.reflect.Method.invokeNative(Native Method)
07-26 07:54:14.360: ERROR/AndroidRuntime(711): at java.lang.reflect.Method.invoke(Method.java:507)
07-26 07:54:14.360: ERROR/AndroidRuntime(711): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
07-26 07:54:14.360: ERROR/AndroidRuntime(711): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
07-26 07:54:14.360: ERROR/AndroidRuntime(711): at dalvik.system.NativeStart.main(Native Method)
07-26 07:54:14.430: WARN/ActivityManager(68): Force finishing activity com.testing.test2/.Test2Activity
07-26 07:54:14.940: WARN/ActivityManager(68): Activity pause timeout for HistoryRecord{405e8368 com.testing.test2/.Test2Activity}
07-26 07:54:16.349: INFO/Process(711): Sending signal. PID: 711 SIG: 9
07-26 07:54:16.389: INFO/ActivityManager(68): Process com.testing.test2 (pid 711) has died.
07-26 07:54:16.399: INFO/WindowManager(68): WIN DEATH: Window{407013e0 com.testing.test2/com.testing.test2.Test2Activity paused=false}
07-26 07:54:16.689: WARN/InputManagerService(68): Got RemoteException sending setActive(false) notification to pid 711 uid 10035
07-26 07:54:21.599: DEBUG/dalvikvm(258): GC_EXPLICIT freed 6K, 54% free 2597K/5639K, external 410K/517K, paused 76ms
07-26 07:54:26.650: DEBUG/dalvikvm(303): GC_EXPLICIT freed 6K, 54% free 2544K/5511K, external 410K/517K, paused 100ms
07-26 07:54:31.640: DEBUG/dalvikvm(315): GC_EXPLICIT freed 1K, 54% free 2538K/5511K, external 410K/517K, paused 72ms
这意味着用户没有在文本字段中输入数字。 但这不是你在堆栈跟踪中显示的错误。它表明您最后生成的R.java文件与引用资源ID的代码之间存在不匹配。完全重新编译你的应用程序来修复它。
检查XML文件是否正确输入的EditText id作为editText1
之所以获得其强制关闭:
android.content.res.Resources$NotFoundException: String resource ID #0x7
在日志说,你有一些未知的String
资源...
请在values
文件夹中检查您的string.xml
文件。
我在我的string.xml文件中的唯一字符串为“APP_NAME”我不认为那里有什么错
清洁和构建项目..如果你使用的是eclipse,那么去:Project - > Clean .... –
您是否尝试捕获NumberFormatException? – Jacob
是的,我试着放在一个尝试... catch语句捕获相同的异常,并弹出一个警告窗口,但没有发生,只是抛出的力量关闭 – bavman
你可以显示logcat消息 –