我正在尝试调试我的Android应用。我已经构建了第一个屏幕,它使用的是Tab Host。我对TabHost做了一些小修改,添加了一些额外的方法(完整的源代码),以便与我的应用程序的其他部分一起使用。
然而,当我尝试运行以下内容时,我在Inflate上得到一个空指针异常,它并没有真正告诉我任何有关原因的信息。我为我的SDK下载了完整的Android源代码并将其添加到eclipse中以逐步完成通胀过程,并查找是否可以通过这种方式获取有关错误的更多信息。
我确切地找到了导致错误的行(下面的源代码),但是当单步执行调试器时发生了一些奇怪的事情。逻辑是一个if / else的情况,其中if == true它应该返回一个New Parser()对象,我运行了那个代码并且它成功地逐步通过了Parser的构造函数,但是从那里返回之后,下一个指令就从语句组到下面的行返回null。
构造函数似乎已正常运行(如果你想知道它位于XmlBlock.java中)但它仍然步入下一行并返回null,我不知道为什么会这样。我已经搜索了解决方案,但到目前为止,使用TabActivity的人遇到的唯一类似问题不适合我的应用程序。我需要Tabs及其视图由我在项目中定义的对象(类似于IOS样式的View Controllers)生成,而不是通过使用Intents来启动新活动的单独进程。
有人可以看一下我的来源并告诉我这里我做错了什么,因为没有人能告诉我这是什么问题?这是涉及来源的另一个直接链接:http://pastebin.com/9VRE2UGW
答案 0 :(得分:1)
好吧,看起来我的真正问题在于我没有在Android DDMS视角中查看我的调试信息。我原本以为Java Debug透视图会给我所有必要的信息。这个例外的真正原因是该计划的其他部分。现在我正在阅读logcat,我应该能够自己解决剩下的问题,因为那是我真正的问题(信息不足)。
答案 1 :(得分:0)
我怀疑这条线是错误的:
TabBarController UITabBarController =
(TabBarController)interfaceBuilder.inflate(R.layout.tab_bar , null);
因为您的R.layout.tab_bar
代表TabHost
:
<?xml version="1.0" encoding="utf-8"?>
<TabHost
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@android:id/tabhost">
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TabWidget
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@android:id/tabs"
android:layout_alignParentBottom="true" />
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@android:id/tabcontent">
</FrameLayout>
</RelativeLayout>
</TabHost>