普通网友 2015-03-19 16:30 采纳率: 100%
浏览 3248
已采纳

[安卓初学者]添加按钮监听 编译通过 运行空指针[已解决]布局里按钮id不要写成name

自学<第一行代码>到broadcastreceiver 添加按钮监听编译通过 运行提示空指针
把教材源代码复制到新android工程 问题依旧
肯定是添加按钮监听代码的问题 去掉之后可以正常运行

而且我还发现 现在编写最简单 按钮跳转activity都会报同样错误

虽然自学时间不长 可是自从学会看logcat 遇到的问题 都自己解决了
麻痹 这次折腾3天了 找不到问题 百度关键字 就找到一个类似的问题
http://bbs.csdn.net/topics/390808499 没看懂rootview什么意思

log如下

03-19 16:39:53.975: E/AndroidRuntime(5490): FATAL EXCEPTION: main
03-19 16:39:53.975: E/AndroidRuntime(5490): Process: av.jb.broadcastdemo, PID: 5490
03-19 16:39:53.975: E/AndroidRuntime(5490): java.lang.RuntimeException: Unable to start activity ComponentInfo{av.jb.broadcastdemo/av.jb.broadcastdemo.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
03-19 16:39:53.975: E/AndroidRuntime(5490): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298)
03-19 16:39:53.975: E/AndroidRuntime(5490): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
03-19 16:39:53.975: E/AndroidRuntime(5490): at android.app.ActivityThread.access$800(ActivityThread.java:144)
03-19 16:39:53.975: E/AndroidRuntime(5490): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
03-19 16:39:53.975: E/AndroidRuntime(5490): at android.os.Handler.dispatchMessage(Handler.java:102)
03-19 16:39:53.975: E/AndroidRuntime(5490): at android.os.Looper.loop(Looper.java:135)
03-19 16:39:53.975: E/AndroidRuntime(5490): at android.app.ActivityThread.main(ActivityThread.java:5221)
03-19 16:39:53.975: E/AndroidRuntime(5490): at java.lang.reflect.Method.invoke(Native Method)
03-19 16:39:53.975: E/AndroidRuntime(5490): at java.lang.reflect.Method.invoke(Method.java:372)
03-19 16:39:53.975: E/AndroidRuntime(5490): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
03-19 16:39:53.975: E/AndroidRuntime(5490): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
03-19 16:39:53.975: E/AndroidRuntime(5490): Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
03-19 16:39:53.975: E/AndroidRuntime(5490): at av.jb.broadcastdemo.MainActivity.onCreate(MainActivity.java:34)
03-19 16:39:53.975: E/AndroidRuntime(5490): at android.app.Activity.performCreate(Activity.java:5933)
03-19 16:39:53.975: E/AndroidRuntime(5490): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
03-19 16:39:53.975: E/AndroidRuntime(5490): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251)
03-19 16:39:53.975: E/AndroidRuntime(5490): ... 10 more

代码如下

 package av.jb.broadcastdemo;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;


public class MainActivity extends Activity {

    private Button button;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        button = (Button) findViewById(R.id.button1);
        button.setOnClickListener(new OnClickListener() {
        @Override
         public void onClick(View v) {
         Intent intent = new Intent("av.jb.broadcastdemo.MY_BROADCAST");
        sendBroadcast(intent);
            }
         });

    }



}

  • 写回答

4条回答 默认 最新

  • 少聪 2015-03-20 07:35
    关注

    如果要是按钮报的null的话,可能是没有得到该按钮,你看下你的xml布局里面那个按钮写的是id还是name啊,如果是name就把那么改成id问题就解决了,你可以看下

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 有没有帮写代码做实验仿真的
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥30 vmware exsi重置后登不上
  • ¥15 易盾点选的cb参数怎么解啊
  • ¥15 MATLAB运行显示错误,如何解决?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题
  • ¥20 yolov5自定义Prune报错,如何解决?