当我收到异常但无法理解在哪里寻找
时,我该怎么办?我的意思是我知道它在我的NewHomeTabActivity中,但我应该从哪里开始搜索。我尝试插入一些日志行和断点,但仍然无法解决根本原因
01-07 13:39:33.133: W/dalvikvm(12350): threadid=1: thread exiting with uncaught exception (group=0x40c471f8)
01-07 13:39:33.133: W/System.err(12350): java.lang.IllegalStateException: Could not find a method onTabClicked(View) in the activity class att.uc.ui.screen.NewHomeTabActivity for onClick handler on view class android.widget.RelativeLayout with id 'tab_dialer'
01-07 13:39:33.138: W/System.err(12350): at android.view.View$1.onClick(View.java:3085)
01-07 13:39:33.143: W/System.err(12350): at android.view.View.performClick(View.java:3620)
01-07 13:39:33.143: W/System.err(12350): at android.view.View$PerformClick.run(View.java:14292)
01-07 13:39:33.143: W/System.err(12350): at android.os.Handler.handleCallback(Handler.java:605)
01-07 13:39:33.148: W/System.err(12350): at android.os.Handler.dispatchMessage(Handler.java:92)
01-07 13:39:33.148: W/System.err(12350): at android.os.Looper.loop(Looper.java:137)
01-07 13:39:33.148: W/System.err(12350): at android.app.ActivityThread.main(ActivityThread.java:4507)
01-07 13:39:33.153: W/System.err(12350): at java.lang.reflect.Method.invokeNative(Native Method)
01-07 13:39:33.153: W/System.err(12350): at java.lang.reflect.Method.invoke(Method.java:511)
01-07 13:39:33.153: W/System.err(12350): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:980)
01-07 13:39:33.158: W/System.err(12350): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:747)
01-07 13:39:33.158: W/System.err(12350): at dalvik.system.NativeStart.main(Native Method)
01-07 13:39:33.158: W/System.err(12350): Caused by: java.lang.NoSuchMethodException: onTabClicked [class android.view.View]
01-07 13:39:33.163: W/System.err(12350): at java.lang.Class.getConstructorOrMethod(Class.java:460)
01-07 13:39:33.163: W/System.err(12350): at java.lang.Class.getMethod(Class.java:915)
01-07 13:39:33.168: W/System.err(12350): at android.view.View$1.onClick(View.java:3078)
01-07 13:39:33.173: W/System.err(12350): ... 11 more
答案 0 :(得分:1)
逐行从下到上阅读stactrace,以获取相关信息
它崩溃了,因为它无法在您的活动中找到方法onTabClicked(View)
。
我假设您有一个XML控件,该控件具有onClick
属性,如下所示:
android:onClick="onTabClicked"
如果是这样,那么您的活动应该有一个名为onTabClicked(View view)
的方法,它接受View
类型的参数,这是必需的。
像这样:
public void onTabClicked(View view){
}
答案 1 :(得分:0)
日志表明它是一个RunTimeException,所以你不能通过放置日志找到它, 在RunTime中找不到您使用的onTabClicked方法(可能在xml文件中定义) 这可能是因为您在针对较低的sdk版本构建时调用了较高的sdk版本,您可以定位更高的sdk版本或使用替代方法进行onclick
类似的链接可以提出可能的解决方案Android TabWidget detect click on current tab