Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java null对象引用错误/我希望我的文本视图在单击按钮时更改颜色和文本_Java_Android_Android Studio - Fatal编程技术网

java null对象引用错误/我希望我的文本视图在单击按钮时更改颜色和文本

java null对象引用错误/我希望我的文本视图在单击按钮时更改颜色和文本,java,android,android-studio,Java,Android,Android Studio,Logcat说第15行有错误。但我不知道原因(我是noob,所以请温柔地解释给我听 下面是logcat的全部内容 。。。 2020-10-17 16:50:03.488 9840-9840/?E/city_实现:运行时设置未知位_标志:0x8000 2020-10-17 16:50:04.351 9840-9840/?E/AndroidRuntime:致命异常:主 流程:com.example.acticity_implements,PID:9840 java.lang.RuntimeExcep

Logcat说第15行有错误。但我不知道原因(我是noob,所以请温柔地解释给我听

下面是logcat的全部内容

。。。 2020-10-17 16:50:03.488 9840-9840/?E/city_实现:运行时设置未知位_标志:0x8000 2020-10-17 16:50:04.351 9840-9840/?E/AndroidRuntime:致命异常:主 流程:com.example.acticity_implements,PID:9840 java.lang.RuntimeException:无法启动activity ComponentInfo{com.example.acticity\u implements/com.example.acticity\u implements.MainActivity}:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法'void android.widget.Button.setOnClickListener(android.view.view$OnClickListener)' 在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3270)上 在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3409)上 在android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83) 在android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)中 在android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)中 在android.app.ActivityThread$H.handleMessage上(ActivityThread.java:2016) 位于android.os.Handler.dispatchMessage(Handler.java:107) 位于android.os.Looper.loop(Looper.java:214) 位于android.app.ActivityThread.main(ActivityThread.java:7356) 位于java.lang.reflect.Method.invoke(本机方法) 位于com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) 位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930) 原因:java.lang.NullPointerException:尝试对空对象引用调用虚拟方法“void android.widget.Button.setOnClickListener(android.view.view$OnClickListener)” 在com.example.acticity_implements.MainActivity.onCreate(MainActivity.java:15) 位于android.app.Activity.performCreate(Activity.java:7802) 位于android.app.Activity.performCreate(Activity.java:7791) 位于android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1299) 位于android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3245) 在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3409)上 在android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83) 在android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)中 在android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)中 在android.app.ActivityThread$H.handleMessage上(ActivityThread.java:2016) 位于android.os.Handler.dispatchMessage(Handler.java:107) 位于android.os.Looper.loop(Looper.java:214) 位于android.app.ActivityThread.main(ActivityThread.java:7356) 位于java.lang.reflect.Method.invoke(本机方法) 位于com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) 位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)

buttonRed的xml代码如下所示。

这可以从上到下非常清楚地分解:

  • 第15行抛出一个
    NullPointerException
    并有两个引用:
    buttonRed
    this
    this
    不能为空,因此它必须是
    buttonRed
  • 第14行
    findViewById
    用于获取对按钮的引用,这显然返回null
  • 这是因为您尚未设置布局,并且没有按钮。如果您从
    onCreate
    中删除所有代码,您将看到一个没有按钮的白色屏幕


    onCreate
    中的
    setcontentview(R.layour\u layout)
    ,在
    super.onCreate()之后立即调用
    setcontentview(R.layour\u layout)

    我的英语不好,所以我不知道如何充分表达我的感激之情。我真的非常感谢你友好和有用的回答。非常感谢!!:D