Java 碰撞

Java 碰撞,java,android,eclipse,Java,Android,Eclipse,当我按下我添加的两个按钮中的任何一个时,我的应用程序崩溃,即“添加”和“订阅”。这就像我根据一些教程编写的第二个应用程序,所以这对我来说是全新的。当按下b子目录和添加按钮时,会调用xxx和yyy,这会导致应用程序在我的手机上崩溃。xml、代码和logcat如下所示 xml文件: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.

当我按下我添加的两个按钮中的任何一个时,我的应用程序崩溃,即“添加”和“订阅”。这就像我根据一些教程编写的第二个应用程序,所以这对我来说是全新的。当按下b子目录和添加按钮时,会调用xxx和yyy,这会导致应用程序在我的手机上崩溃。xml、代码和logcat如下所示

xml文件:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.myapp1.CalculateActivity" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:text="@string/hello_world"
        android:textSize="25sp" />

    <Button
        android:id="@+id/bSubtract"
        android:onClick="xxx"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/bAdd"
        android:layout_alignBottom="@+id/bAdd"
        android:layout_marginLeft="28dp"
        android:layout_toRightOf="@+id/bAdd"
        android:text="@string/bSubtract" />

    <Button
        android:id="@+id/bAdd"
        android:onClick="yyy"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/textView1"
        android:layout_marginLeft="52dp"
        android:layout_marginTop="25dp"
        android:text="@string/bAdd" />

</RelativeLayout>
日志:

04-16 23:07:04.409: D/AndroidRuntime(22562): Shutting down VM
04-16 23:07:04.409: W/dalvikvm(22562): threadid=1: thread exiting with uncaught exception (group=0x418db700)
04-16 23:07:04.414: E/AndroidRuntime(22562): FATAL EXCEPTION: main
04-16 23:07:04.414: E/AndroidRuntime(22562): java.lang.IllegalStateException: Could not execute method of the activity
04-16 23:07:04.414: E/AndroidRuntime(22562):    at android.view.View$1.onClick(View.java:3838)
04-16 23:07:04.414: E/AndroidRuntime(22562):    at android.view.View.performClick(View.java:4475)
04-16 23:07:04.414: E/AndroidRuntime(22562):    at android.view.View$PerformClick.run(View.java:18786)
04-16 23:07:04.414: E/AndroidRuntime(22562):    at android.os.Handler.handleCallback(Handler.java:730)
04-16 23:07:04.414: E/AndroidRuntime(22562):    at android.os.Handler.dispatchMessage(Handler.java:92)
04-16 23:07:04.414: E/AndroidRuntime(22562):    at android.os.Looper.loop(Looper.java:137)
04-16 23:07:04.414: E/AndroidRuntime(22562):    at android.app.ActivityThread.main(ActivityThread.java:5419)
04-16 23:07:04.414: E/AndroidRuntime(22562):    at java.lang.reflect.Method.invokeNative(Native Method)
04-16 23:07:04.414: E/AndroidRuntime(22562):    at java.lang.reflect.Method.invoke(Method.java:525)
04-16 23:07:04.414: E/AndroidRuntime(22562):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1187)
04-16 23:07:04.414: E/AndroidRuntime(22562):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
04-16 23:07:04.414: E/AndroidRuntime(22562):    at dalvik.system.NativeStart.main(Native Method)
04-16 23:07:04.414: E/AndroidRuntime(22562): Caused by: java.lang.reflect.InvocationTargetException
04-16 23:07:04.414: E/AndroidRuntime(22562):    at java.lang.reflect.Method.invokeNative(Native Method)
04-16 23:07:04.414: E/AndroidRuntime(22562):    at java.lang.reflect.Method.invoke(Method.java:525)
04-16 23:07:04.414: E/AndroidRuntime(22562):    at android.view.View$1.onClick(View.java:3833)
04-16 23:07:04.414: E/AndroidRuntime(22562):    ... 11 more
04-16 23:07:04.414: E/AndroidRuntime(22562): Caused by: java.lang.NullPointerException
04-16 23:07:04.414: E/AndroidRuntime(22562):    at com.example.myapp1.CalculateActivity.yyy(CalculateActivity.java:83)
04-16 23:07:04.414: E/AndroidRuntime(22562):    ... 14 more
04-16 23:12:14.494: I/Process(22562): Sending signal. PID: 22562 SIG: 9

按钮add和sub为空。请在创建时尝试以下代码加载项:

add = (Button) findViewById(R.id.bAdd);
sub = (Button) findViewById(R.id.bSub); 

您已经在xml上创建了按钮,但还没有添加引用,这应该会对您有所帮助。在开始使用之前添加它

add = (Button) findViewById(R.id.bAdd);
sub = (Button) findViewById(R.id.bSub); 
您也可以在xml中添加来自侦听器的引用,就像您所做的那样

 android:onClick="xxx"
 android:onClick="yyy"
您可以通过编程方式添加它,如下所示

add.setOnClickListener(xxx);

 View.OnClickListener xxx = new View.OnClickListener() {
        public void onClick(View v) {
            // Do something in response to button
            counter--;
            display.setText(""+ counter);
        }
    };
我相信这完全取决于你。 另外,检查你的日志,它说你的按钮是空的;它几乎说明了出了什么问题

04-16 23:07:04.414: E/AndroidRuntime(22562): Caused by: java.lang.NullPointerException
04-16 23:07:04.414: E/AndroidRuntime(22562):    at com.example.myapp1.CalculateActivity.yyy(CalculateActivity.java:83)
04-16 23:07:04.414: E/AndroidRuntime(22562):    ... 14 more

无论如何,在使用then.进行任何操作之前,请记住将引用添加到视图中。。这应该可以避免将来出现空指针异常。

Make sur您的视图在activity_calculate内。原因:java.lang.NullPointerException 04-16 23:07:04.414:E/AndroidRuntime22562:at com.example.myapp1.CalculateActivity.yyyCalculateActivity.java:83第83行是什么?哦,学习如何使用调试器。然后,您可以在30秒内找到此错误。您发布的布局xml:它是fragment_calculate还是activity_calculate?提示:您可以将属性layout_alignBottom的值更改为@id/而不是“@+id/”,以使用预定义id而不是创建新id,并确保在调用它之前定义了要使用的id。这将阻止与不存在的id建立相对关系。根据stacktrace,在yyy方法中抛出displayNPE初始化后,尝试初始化占位符片段。同意donfuxx。我在yyy方法中既没有看到add变量,也没有看到sub变量。我阅读..我按下我添加的两个按钮中的任何一个。。。假设NPE是由那里引起的谢谢araut。你在正确的轨道上。看我上面的回答。看起来有一个小部件导致了NPE——一个问题有多种解决方案;请看donfuxx和@Fllo提到的内容。他们对解决方案的跟踪似乎更加清晰明了。首先:我在日志中找不到按钮为空的地方,其次:从xml或Java调用函数我认为不会解决问题,除非eclipse出现问题并且无法构建程序!!试着像我说的那样初始化两个按钮。我在日志中引用过,您可以在日志中发现您的按钮为null。NPE是根据stacktrace在yyy方法中抛出的
04-16 23:07:04.414: E/AndroidRuntime(22562): Caused by: java.lang.NullPointerException
04-16 23:07:04.414: E/AndroidRuntime(22562):    at com.example.myapp1.CalculateActivity.yyy(CalculateActivity.java:83)
04-16 23:07:04.414: E/AndroidRuntime(22562):    ... 14 more