【问题标题】:Could not execute method of Activity无法执行 Activity 的方法
【发布时间】:2012-04-14 09:38:11
【问题描述】:

我有一组按钮,它们的onClick 属性是“点击”,就像android:onClick="click" 一样。我在 android 2.2 中运行它

这是主活动中的点击功能。正如预期的那样,这个函数在onCreate 方法之外。

public void click(View v)
{
    String s = et2.getText().toString();

    switch(v.getId())
    {
        case R.id.b0 :      
            if(s.length() == 1 && s.charAt(0) == '0')
            {  
                et2.setText("0");
                et1.setText("0");
            }
            else
            {
                s = s + "0";
                call(s);
            }
        break;
        //Other cases
    }
}

问题是每当我单击任何按钮时,应用程序都会停止工作(强制关闭)。

这是日志:

03-30 22:23:20.129:E/AndroidRuntime(1240):致命异常:主要 03-30 22:23:20.129: E/AndroidRuntime(1240): java.lang.IllegalStateException:无法执行的方法 活动 03-30 22:23:20.129: E/AndroidRuntime(1240): at android.view.View$1.onClick(View.java:3044) 03-30 22:23:20.129: E/AndroidRuntime(1240):在 android.view.View.performClick(View.java:3511) 03-30 22:23:20.129: E/AndroidRuntime(1240):在 android.view.View$PerformClick.run(View.java:14105) 03-30 22:23:20.129:E/AndroidRuntime(1240):在 android.os.Handler.handleCallback(Handler.java:605) 03-30 22:23:20.129:E/AndroidRuntime(1240):在 android.os.Handler.dispatchMessage(Handler.java:92) 03-30 22:23:20.129: E/AndroidRuntime(1240): 在
android.os.Looper.loop(Looper.java:137) 03-30 22:23:20.129: E/AndroidRuntime(1240):在 android.app.ActivityThread.main(ActivityThread.java:4424) 03-30 22:23:20.129:E/AndroidRuntime(1240):在 java.lang.reflect.Method.invokeNative(Native Method) 03-30 22:23:20.129:E/AndroidRuntime(1240):在 java.lang.reflect.Method.invoke(Method.java:511) 03-30 22:23:20.129: E/AndroidRuntime(1240):在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 03-30 22:23:20.129: E/AndroidRuntime(1240): 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 03-30 22:23:20.129:E/AndroidRuntime(1240):在 dalvik.system.NativeStart.main(本机方法)03-30 22:23:20.129: E/AndroidRuntime(1240):由以下原因引起: java.lang.reflect.InvocationTargetException 03-30 22:23:20.129: E/AndroidRuntime(1240):在 java.lang.reflect.Method.invokeNative(Native Method) 03-30 22:23:20.129:E/AndroidRuntime(1240):在 java.lang.reflect.Method.invoke(Method.java:511) 03-30 22:23:20.129: E/AndroidRuntime(1240):在 android.view.View$1.onClick(View.java:3039) 03-30 22:23:20.129: E/AndroidRuntime(1240): ... 11 更多 03-30 22:23:20.129: E/AndroidRuntime(1240):原因:java.lang.NullPointerException 03-30 22:23:20.129: E/AndroidRuntime(1240): 在 yadav.sanjay.calculator.CalculatorActivity.click(CalculatorActivity.java:63)

【问题讨论】:

  • click() 应该是onClick()
  • CalculatorActivity.java 的第 63 行是什么?
  • 第 63 行:String s=et2.getText().toString();

标签: java android button onclick


【解决方案1】:

引起:java.lang.NullPointerException, 通常,这意味着您的员工尚未初始化。 检查第 63 行附近的代码。

【讨论】:

    【解决方案2】:

    检查您的et2 是否已初始化。如果您使用的是findViewById(),请检查您是否在setContent() 之后使用。

    【讨论】:

      【解决方案3】:

      尝试将第 63 行的代码更改为两个单独的行,如下所示。

      String s; //you should probably change s to something less common like calS or the like
      s = et2.getText().toString();
      

      我认为另一个问题可能是 et2 从未初始化过。确保您已初始化 et2。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-10-02
        • 1970-01-01
        • 2016-08-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多