【问题标题】:Strange exception in routine ListActivity例程 ListActivity 中的奇怪异常
【发布时间】:2012-05-17 20:46:46
【问题描述】:

我在尝试设置 ListActivity 的项目视图时收到 NullPointerException。完整的堆栈跟踪在这篇文章的底部,但我不确定它有多大帮助。这是导致问题的行:

 convertView = mInflater.inflate(R.layout.more_group_list_item, null);

由于异常提供的信息很少,而且我不知道为什么这条线会生成NullPointerException,我不知道从哪里解决这个问题。我唯一的猜测是找不到布局项。

这里是上下文:

class MoreJumpListAdapter extends ArrayAdapter<MoreItem> {

    public MoreJumpListAdapter(final Context context) {
        super(context, 0);
    }

    @Override
    public View getView(final int position, View convertView, final ViewGroup parent) {
        MoreJumpActivity.ViewHolder viewHolder;

        if (convertView == null) {
            convertView = mInflater.inflate(R.layout.more_group_list_item, null);
            viewHolder = new MoreJumpActivity.ViewHolder(convertView);
            convertView.setTag(viewHolder);
        } else {
            viewHolder = (MoreJumpActivity.ViewHolder) convertView.getTag();
        }

        viewHolder.populateViews(getItem(position));

        return convertView;
    }

}

这是布局xml文件的内容:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:paddingRight="?android:attr/scrollbarSize"
    android:background="@color/white">
    <ImageView
        android:id="@+id/imageview_displayimage"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:padding="5dp" />
    <TextView
        android:id="@+id/tv_displayname"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ellipsize="end"
        android:layout_centerVertical="true"
        android:paddingLeft="15dp"
        android:layout_toRightOf="@+id/imageview_displayimage" />
</RelativeLayout>

如果有人在此堆栈跟踪中看到任何有用的信息,我很想知道它是什么。

05-17 20:34:22.224: W/dalvikvm(997): threadid=1: thread exiting with uncaught exception (group=0x40015560)
05-17 20:34:22.264: E/AndroidRuntime(997): FATAL EXCEPTION: main
05-17 20:34:22.264: E/AndroidRuntime(997): java.lang.NullPointerException
05-17 20:34:22.264: E/AndroidRuntime(997):  at com.MyApp.MoreJumpActivity$MoreJumpListAdapter.getView(MoreJumpActivity.java:103)
05-17 20:34:22.264: E/AndroidRuntime(997):  at android.widget.AbsListView.obtainView(AbsListView.java:1430)
05-17 20:34:22.264: E/AndroidRuntime(997):  at android.widget.ListView.makeAndAddView(ListView.java:1745)
05-17 20:34:22.264: E/AndroidRuntime(997):  at android.widget.ListView.fillDown(ListView.java:670)
05-17 20:34:22.264: E/AndroidRuntime(997):  at android.widget.ListView.fillFromTop(ListView.java:727)
05-17 20:34:22.264: E/AndroidRuntime(997):  at android.widget.ListView.layoutChildren(ListView.java:1598)
05-17 20:34:22.264: E/AndroidRuntime(997):  at android.widget.AbsListView.onLayout(AbsListView.java:1260)
05-17 20:34:22.264: E/AndroidRuntime(997):  at android.view.View.layout(View.java:7175)
05-17 20:34:22.264: E/AndroidRuntime(997):  at android.widget.RelativeLayout.onLayout(RelativeLayout.java:912)
05-17 20:34:22.264: E/AndroidRuntime(997):  at android.view.View.layout(View.java:7175)
05-17 20:34:22.264: E/AndroidRuntime(997):  at android.widget.FrameLayout.onLayout(FrameLayout.java:338)
05-17 20:34:22.264: E/AndroidRuntime(997):  at android.view.View.layout(View.java:7175)
05-17 20:34:22.264: E/AndroidRuntime(997):  at android.widget.FrameLayout.onLayout(FrameLayout.java:338)
05-17 20:34:22.264: E/AndroidRuntime(997):  at android.view.View.layout(View.java:7175)
05-17 20:34:22.264: E/AndroidRuntime(997):  at android.widget.FrameLayout.onLayout(FrameLayout.java:338)
05-17 20:34:22.264: E/AndroidRuntime(997):  at android.view.View.layout(View.java:7175)
05-17 20:34:22.264: E/AndroidRuntime(997):  at android.widget.FrameLayout.onLayout(FrameLayout.java:338)
05-17 20:34:22.264: E/AndroidRuntime(997):  at android.view.View.layout(View.java:7175)
05-17 20:34:22.264: E/AndroidRuntime(997):  at android.widget.FrameLayout.onLayout(FrameLayout.java:338)
05-17 20:34:22.264: E/AndroidRuntime(997):  at android.view.View.layout(View.java:7175)
05-17 20:34:22.264: E/AndroidRuntime(997):  at android.widget.RelativeLayout.onLayout(RelativeLayout.java:912)
05-17 20:34:22.264: E/AndroidRuntime(997):  at android.view.View.layout(View.java:7175)
05-17 20:34:22.264: E/AndroidRuntime(997):  at android.widget.FrameLayout.onLayout(FrameLayout.java:338)
05-17 20:34:22.264: E/AndroidRuntime(997):  at android.view.View.layout(View.java:7175)
05-17 20:34:22.264: E/AndroidRuntime(997):  at android.widget.FrameLayout.onLayout(FrameLayout.java:338)
05-17 20:34:22.264: E/AndroidRuntime(997):  at android.view.View.layout(View.java:7175)
05-17 20:34:22.264: E/AndroidRuntime(997):  at android.widget.FrameLayout.onLayout(FrameLayout.java:338)
05-17 20:34:22.264: E/AndroidRuntime(997):  at android.view.View.layout(View.java:7175)
05-17 20:34:22.264: E/AndroidRuntime(997):  at android.view.ViewRoot.performTraversals(ViewRoot.java:1140)
05-17 20:34:22.264: E/AndroidRuntime(997):  at android.view.ViewRoot.handleMessage(ViewRoot.java:1859)
05-17 20:34:22.264: E/AndroidRuntime(997):  at android.os.Handler.dispatchMessage(Handler.java:99)
05-17 20:34:22.264: E/AndroidRuntime(997):  at android.os.Looper.loop(Looper.java:123)
05-17 20:34:22.264: E/AndroidRuntime(997):  at android.app.ActivityThread.main(ActivityThread.java:3683)
05-17 20:34:22.264: E/AndroidRuntime(997):  at java.lang.reflect.Method.invokeNative(Native Method)
05-17 20:34:22.264: E/AndroidRuntime(997):  at java.lang.reflect.Method.invoke(Method.java:507)
05-17 20:34:22.264: E/AndroidRuntime(997):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
05-17 20:34:22.264: E/AndroidRuntime(997):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
05-17 20:34:22.264: E/AndroidRuntime(997):  at dalvik.system.NativeStart.main(Native Method)

【问题讨论】:

  • 如果mInflaternull,它将产生一个NPE;是吗?
  • ...是的。它是。这很尴尬。
  • 嘿。我们都去过那里。我仍然经常去那里。
  • 您应该将其作为答案发布,以便它可以被接受,并且此问题不会出现在未回答列表中。 :p
  • @DaveNewton 如果可以的话,请将其作为答案发布

标签: android android-layout android-widget android-listview


【解决方案1】:

如果流没有进入inflate 方法,那么mInflater 必须是null,因此抛出。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-04
    • 2011-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多