所以我正在尝试在我的Android应用程序中使用准系统抽象类型(我只是一个业余爱好者,我可能在这里做了一些非常愚蠢的事情)。以下导致程序崩溃(当我按下meh_button时):
public abstract class wifiInfoSet{
protected String bssid;
public String getBssid(){return bssid;}
public void setBssid(String s){bssid = s;}
}
----------------------------------------------
wifiInfoSet wifi_info;
public wifiInfoSet getWifiInfo(wifiInfoSet winse){
winse.setBssid("gday");
return winse;
}
-----------------------------------------------
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView display;
meh_button = (Button) findViewById (R.id.bTestGetNetInfo);
meh_button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
display.setText(wifi_info.getBssid());
}
});
}
我只想在屏幕上打印“gday”,但应用程序崩溃了。 Eclipse给我错误“令牌上的语法错误”new“,删除此令牌”如果我这样做
wifiInfoSet wifi_info = new wifiInfoSet;
我没有编译器错误,但是如果我这样做,应用程序仍会崩溃
wifiInfoSet wifi_info = null;
(最后oncreate方法将调用getWifiInfo,它将使用一个wifi管理器来获取一些字符串,一些整数和一个SupplicantState但这既不在这里也不在那里,它只是解释了为什么我的字符串被称为bssid以及为什么我不只是使用这个String类。)
logcat的:
01-09 20:02:55.346: E/AndroidRuntime(9778): FATAL EXCEPTION: main
01-09 20:02:55.346: E/AndroidRuntime(9778): java.lang.NullPointerException
01-09 20:02:55.346: E/AndroidRuntime(9778): at coach_rider.one.Coach_rider_oneActivity$3.onClick(Coach_rider_oneActivity.java:249)
01-09 20:02:55.346: E/AndroidRuntime(9778): at android.view.View.performClick(View.java:2408)
01-09 20:02:55.346: E/AndroidRuntime(9778): at android.view.View$PerformClick.run(View.java:8816)
01-09 20:02:55.346: E/AndroidRuntime(9778): at android.os.Handler.handleCallback(Handler.java:587)
01-09 20:02:55.346: E/AndroidRuntime(9778): at android.os.Handler.dispatchMessage(Handler.java:92)
01-09 20:02:55.346: E/AndroidRuntime(9778): at android.os.Looper.loop(Looper.java:123)
01-09 20:02:55.346: E/AndroidRuntime(9778): at android.app.ActivityThread.main(ActivityThread.java:4627)
01-09 20:02:55.346: E/AndroidRuntime(9778): at java.lang.reflect.Method.invokeNative(Native Method)
01-09 20:02:55.346: E/AndroidRuntime(9778): at java.lang.reflect.Method.invoke(Method.java:521)
01-09 20:02:55.346: E/AndroidRuntime(9778): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
01-09 20:02:55.346: E/AndroidRuntime(9778): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
01-09 20:02:55.346: E/AndroidRuntime(9778): at dalvik.system.NativeStart.main(Native Method)