简体   繁体   English

Android应用意外崩溃

[英]Android app crashes unexpectedly

I am new to Android developement and had recently started on a project to get WiFi SSID , BSSID and MAC address. 我是Android开发的新手,最近刚开始进行项目以获得WiFi SSIDBSSIDMAC地址。 However, the app crashed unexpectedly immediately after opening it. 但是,该应用程序在打开后立即崩溃。

The error log in Android Studio says that: 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 ...

My java file can be found at http://www.yikjin.ga/MainActivity.java 我的java文件可以在http://www.yikjin.ga/MainActivity.java中找到

There were no syntax errors recorded by Android Studio. Android Studio没有记录语法错误。

Thanks in advance! 提前致谢!

From your error is seems you are trying to get the View inside the constructor of your class or you are calling findViewById() outside. 从您的错误看来,您似乎正在尝试将View放入类的构造函数中,或者正在外部调用findViewById()

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

Move those code to onCreate() method after calling setContentView() 在调用setContentView()之后将这些代码移至onCreate()方法

Update: 更新:

Change 更改

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

to

TextView viewWifiSSID;
TextView viewWifiBSSID;
TextView viewWifiMAC;

and add the following to onCreate() after setContentView() 并在setContentView()之后将以下内容添加到onCreate() setContentView()

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

you are referring object before activity is created ... onCreate() is called when your activity is created so refer object inside onCreate() ... 您在创建活动之前引用对象...在创建活动时调用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();
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM