【发布时间】:2015-07-15 23:25:37
【问题描述】:
在我的 Android 应用程序中,我需要在应用程序的两个不同位置使用一些字符串。所以我写了一个类,我可以从中获取这些字符串。当我尝试从返回字符串数组的类中调用返回方法时,应用程序因java.lang.NullPointerException 而崩溃。这是带有返回方法的类:
public class MetaDataFetcher {
String[] metaData;
public String[] getMetaData() {
//Gets the metadata strings from HarvasterAsync
try {
metaData = new HarvesterAsync().execute("urlhere").get();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
return metaData;
}
}
我正在尝试像这样检索字符串数组:
public void updateMetaData(){
//Gets the metadata strings from MetaDataFetcher
String[] receivedMetaData = metaDataFetcher.getMetaData();
//More code below...
NullPointerException 发生在String[] receivedMetaData = metaDataFetcher.getMetaData(); 行。
我做错了什么?
编辑:
我在 MainActivity 类中的 onCreate 方法上方使用行 MetaDataFetcher metaDataFetcher; 初始化 MetaDataFetcher 类。
HarvesterAsync 是一个AsyncTask。你可以看到它here。
【问题讨论】:
-
嗯,
metaDataFetcher似乎是null。 -
好像
metaDataFetcher是null -
我明白,但为什么呢?
-
@Segadude 我认为这是范围问题。你能摆脱 try catch 块并查看你的代码行为吗?
-
嗨,请发布更多关于“metaDataFetcher”如何被初始化以及“HarvesterAsync”是什么样子的代码,尤其是“HarvesterAsync.get()”方法的作用。我觉得对于asynTask,执行后直接获取即可
标签: java android nullpointerexception