我有一个读取 XML 文件、解析它并将单个元素加载到数组中的方法。代码本身在包含在 Activity 类中时可以工作。它需要从 2 个不同的活动中使用,因此我创建了一个实用程序类,以便我可以从所需的每个活动中调用一个副本。但是,当它从实用程序类运行时,我得到一个空点异常。这告诉我,我正在打破我能做什么以及从哪里做的规则。我怀疑这与对资源的访问有关,因为我还尝试访问字符串资源(仅作为测试),这也引发了 NPE。
这是实用程序类。第一个 Log.i 出现在 LogCat 中,但第二个没有。
class Utils extends MainActivity
{
String debugTag = DEBUG_TAG + "/Utils";
public void loadRankFile() throws XmlPullParserException, IOException
{
int eventType = -1;
boolean boolFoundRanks = false;
int intCounter = 0;
// this line appears in LogCat
Log.i(debugTag, "Inside loadRankFile utility.");
// this line causes the NPE
XmlResourceParser scoutRanks = getResources().getXml(R.xml.scoutranks);
// this line does not appear in LogCat
Log.i(debugTag, "xml file loaded");
.
.
.
}
这是上面调用该方法的 Activity 的代码:
public class RankProgressActivity extends MainActivity
{
String debugTag = DEBUG_TAG + "/RankProgressActivity";
Utils utilities = new Utils();
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.rank_progress);
try
{
initSelectScout();
utilities.loadRankFile();
initSelectRank();
}
catch (IOException e)
{
Log.i(debugTag, "Failure initializing Scout Progress activity items", e);
}
catch (XmlPullParserException e)
{
Log.e(debugTag, "Rank file parse error.", e);
}
.
.
.
}
我确定我犯了一个典型的错误,但我没有看到它,而且我还没有找到指导。对于任何反馈,我们都表示感谢。我对 Java 和 Android 还很陌生,所以这对我来说是一次非常重要的学习经历。
先感谢您。