android studio:尝试对空对象引用调用虚拟方法

android studio:尝试对空对象引用调用虚拟方法,android,Android,这个问题被问了很多次,但之前的回答并没有解决我的问题。我正在制作一个应用程序,它在一个非活动类中使用大字符串数组,该类在使用时在任何活动中返回数组。该应用程序在编译时没有给出任何错误,但中途崩溃。 我的代码如下: String[] busNamesSearch; GetDBClass BDclassBuses; AutoCompleteTextView searchView; String BSquery; Button searchButton; @Override protected v

这个问题被问了很多次,但之前的回答并没有解决我的问题。我正在制作一个应用程序,它在一个非活动类中使用大字符串数组,该类在使用时在任何活动中返回数组。该应用程序在编译时没有给出任何错误,但中途崩溃。 我的代码如下:

String[] busNamesSearch;

GetDBClass BDclassBuses;
AutoCompleteTextView searchView;
String BSquery;
Button searchButton;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_search_bus);


    busNamesSearch = BDclassBuses.GetBusNameArrays();
    searchView = (AutoCompleteTextView) findViewById(R.id.searchBusesView);
    searchButton = (Button)findViewById(R.id.searchBusButton);
    ArrayAdapter<String> arrayAdapter = new ArrayAdapter<>(this, 
    android.R.layout.simple_list_item_1, busNamesSearch);
    searchView.setThreshold(1);
    searchView.setAdapter(arrayAdapter);
引起问题的错误行是:

busNamesSearch = BDclassBuses.GetBusNameArrays();

我不知道现在该怎么办。我已经试过了所有我能找到的方法

请注意,以备将来参考。如果在未初始化的情况下访问类的任何方法/变量,则会出现空指针。在一个非常幼稚的版本中,每当你做null.something时,它就会发生

所以,若你们曾经在任何一行上面对空指针,检查你们是否已经做了空的事情

并且类引用在未创建对象之前为null。通常,对象创建线如下所示

ClassName referenceName = new ClassName()

当=右侧的部分正在创建对象时,您可以使用=符号左侧的引用名称访问该对象,找到显示错误的函数,并将其置于
try catch block

在你的情况下

GetBusNameArrays()

解决办法是

try{
.......GetBusNameArrays()
}
catch (Exception e)
{
 //To-do with expection
}

getBusNameArrays()的基本功能可能是创建一个字符串数组并返回它。它在GetDBClass类下。在使用它之前,您不能初始化DcLassBus。@Selvin您能详细说明一下吗?不。。。关于NullPointerException没有更多的详细说明了您建议他们捕获NullPointerException?很抱歉,这是非常糟糕的建议,不应该推荐给新手程序员。经历NPE的代码是断开的代码,不应捕获异常。相反,应该识别异常的源,堆栈跟踪将帮助识别异常,然后修复异常。
try{
.......GetBusNameArrays()
}
catch (Exception e)
{
 //To-do with expection
}