【发布时间】:2010-12-22 05:43:15
【问题描述】:
我目前正在尝试调试我的 Android 应用程序。我已经构建了第一个屏幕,它使用的是 Tab Host。我对 TabHost 做了一些小的修改,以添加一些额外的方法(完整的源代码)来与我的应用程序的其他部分一起工作。
但是,当我尝试运行以下命令时,我在 Inflate 上得到一个空指针异常,它并没有真正告诉我原因。我为我的 SDK 下载了完整的 Android 源代码并将其添加到 eclipse 中,以逐步完成膨胀过程,并查找是否可以通过这种方式获得有关错误的更多信息。
我确切地找到了导致错误的行(源代码如下),但是在单步调试调试器时发生了一些奇怪的事情。逻辑是 if/else 情况,其中 if == true 它应该返回一个 New Parser() 对象,我运行了该代码,它成功地通过了 Parser 的构造函数,但是在从那里返回之后,下一条指令直接跳出语句组到下一行返回 null。
构造函数似乎运行正常(它位于 XmlBlock.java 中,以防您想知道)但它仍然跳到下一行并返回 null,我不知道这是为什么。我已经搜索了解决方案,但到目前为止,唯一类似的问题是有人使用不适合我的应用程序的 TabActivity 遇到的。我需要由我在项目中定义的对象(类似于 IOS 样式的视图控制器)生成选项卡及其视图,而不是通过使用 Intent 来启动新活动来分离进程。
有人可以看看我的来源并告诉我我在这里做错了什么,因为似乎没有其他人可以告诉我问题出在哪里?这是另一个指向相关来源的直接链接:http://pastebin.com/9VRE2UGW
【问题讨论】:
-
如果您在 Activity 中“添加一些额外的方法”以“使用应用程序的其他部分”,这听起来像是您做错了什么。
-
我真的不喜欢 Android 是如何将活动中的所有内容分类为上帝/分类的,这会将 UI 和控制器逻辑混为一谈。我更喜欢提供的更干净的分离 IOS 样式的 ViewController 对象。所以我一直在围绕它们设计我的应用程序。将一个好的 VC 基类组合在一起并从那里开始工作并不难。我已经解决了这些最初的问题,现在已经开始进行更繁重的工作,将我的 CSV 从 Objective-C 移植到 SQLite 解析器到 Java。
标签: android android-widget nullpointerexception android-tabhost