[英]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 SSID
, BSSID
和MAC
地址。 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.