Java Android应用程序意外崩溃

Java Android应用程序意外崩溃,java,android,Java,Android,我是Android开发的新手,最近开始了一个项目,获取WiFi SSID、BSSID和MAC地址。然而,该应用程序在打开后立即意外崩溃 Android Studio中的错误日志显示: FATAL EXCEPTION: main Process: com.example.android.wifi, PID: 3875 java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.andro

我是Android开发的新手,最近开始了一个项目,获取
WiFi SSID
BSSID
MAC
地址。然而,该应用程序在打开后立即意外崩溃

Android Studio中的错误日志显示:

FATAL EXCEPTION: main
Process: com.example.android.wifi, PID: 3875

java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.android.wifi/com.example.android.wifi}: java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.view.Window.findViewById(int)' on a null object reference
at
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2993)
at
android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3248)
at ...
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.view.Window.findViewById(int)' on a null object reference
at
android.app.Activity.findViewById(Activity.java:2277)
at
com.example.android.wifi.MainActivity.<init>(MainActivity.java:16)
at ...
致命异常:main
进程:com.example.android.wifi,PID:3875
java.lang.RuntimeException:无法实例化活动组件信息{com.example.android.wifi/com.example.android.wifi}:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“android.view.view android.view.Window.findViewById(int)”
在
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2993)
在
android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3248)
在
原因:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“android.view.view android.view.Window.findViewById(int)”
在
android.app.Activity.findviewbyd(Activity.java:2277)
在
com.example.android.wifi.MainActivity.(MainActivity.java:16)
在
我的
java
文件可以在

Android Studio没有记录任何语法错误


提前谢谢

从错误中可以看出,您试图在类的构造函数内部获取
视图,或者在外部调用
findViewById()

com.example.android.wifi.MainActivity.<init>(MainActivity.java:16)

并将以下内容添加到
setContentView()之后的
onCreate()


从您的错误来看,您似乎正在尝试在类的构造函数内部获取
视图
,或者在外部调用
findViewById()

com.example.android.wifi.MainActivity.<init>(MainActivity.java:16)

并将以下内容添加到
setContentView()之后的
onCreate()


在创建活动之前,您正在引用对象<创建活动时会调用code>onCreate()
,因此请参考
onCreate()
中的对象

TextView viewWifiSSID, viewWifiBSSID, viewWifiMAC;

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

  viewWifiSSID = (TextView) findViewById(R.id.network);
  viewWifiBSSID = (TextView) findViewById(R.id.bssid);
  viewWifiMAC = (TextView) findViewById(R.id.mac);

  getWifi();
}

在创建活动之前,您正在引用对象<创建活动时会调用code>onCreate()
,因此请参考
onCreate()
中的对象

TextView viewWifiSSID, viewWifiBSSID, viewWifiMAC;

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

  viewWifiSSID = (TextView) findViewById(R.id.network);
  viewWifiBSSID = (TextView) findViewById(R.id.bssid);
  viewWifiMAC = (TextView) findViewById(R.id.mac);

  getWifi();
}

代码在哪里???呜呜声抱歉修复了链接似乎您引用的xml对象名称错误..检查代码在哪里???呜呜声抱歉修复了链接似乎您引用的xml对象名称错误..检查it@MD:
表示类构造函数,这意味着错误就在那里,然后
android.app.Activity.findViewById(Activity.java:2277)
显示调用了
findViewById
。@MD:除非您可以在没有代码的情况下指出错误。虽然我明白你的意思,但我告诉过你这一点,因为在没有发布代码的情况下,我不会再犯这个错误。实际上,通过回答这些问题,我们鼓励OP再次犯这样的错误。没有别的了+向上一步。我将删除我的答案,这是我今天的最后一票。@MD:我明白你的意思,我没有那样想。非常感谢您的建议。@MD:
表示类构造函数,这意味着存在错误,然后
android.app.Activity.findviewbyd(Activity.java:2277)
显示调用了
findviewbyd
。@MD:除非您可以在没有代码的情况下指出错误。虽然我明白你的意思,但我告诉过你这一点,因为在没有发布代码的情况下,我不会再犯这个错误。实际上,通过回答这些问题,我们鼓励OP再次犯这样的错误。没有别的了+向上一步。我将删除我的答案,这是我今天的最后一票。@MD:我明白你的意思,我没有那样想。非常感谢你的建议。我认为这会导致变量本地化?我认为这会导致变量本地化?
TextView viewWifiSSID, viewWifiBSSID, viewWifiMAC;

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

  viewWifiSSID = (TextView) findViewById(R.id.network);
  viewWifiBSSID = (TextView) findViewById(R.id.bssid);
  viewWifiMAC = (TextView) findViewById(R.id.mac);

  getWifi();
}