Android ListView中奇怪的致命异常

Android ListView中奇怪的致命异常,android,listview,exception,fatal-error,Android,Listview,Exception,Fatal Error,我是android世界的新手,有一个我无法处理的令人困惑的bug 我有以下列表视图: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:

我是android世界的新手,有一个我无法处理的令人困惑的bug

我有以下列表视图:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">


    <ListView
        android:id="@+id/listView1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

    </ListView>

</LinearLayout>

我不知道怎么了。我试图用调试器查找故障排除代码,但程序甚至无法访问活动的onCreate方法…

导入com.study.droid.R对我来说似乎是可疑的

导入com.study.droid.R对我来说似乎是可疑的

你必须竭尽全力才能让它以这种方式工作。如果R类是从res目录及其包含的所有内容生成的,那么它将具有与代码相同的路径,并且您不必导入它。我可能错了,但我突然想到,这可能是问题所在。我不知道我对你的理解是否正确。但是R类的路径与我的代码不同。我的意思是R在gen文件夹中,代码在src文件夹中。如果我删除了导入,我会得到一个编译错误,我必须导入R类。你知道为什么你的R与你的代码不在同一条路径上吗?这对我来说并不寻常。我只是怀疑错误可能来自这种不匹配。有两个单独的文件夹,一个是R类的,一个是src代码的,这难道不正常吗。我以前看到的所有Android项目都有相同的方案。在你的项目文件夹下,你会有一个src文件夹和一个res文件夹。在gen文件夹中,您将有R.java,根据我的经验,该文件中的包名应该与应用程序的其余部分相同。我并不是说这就是问题所在;这对我来说很奇怪,这就是为什么我要提到它。你必须用你自己的方式让它那样工作。如果R类是从res目录及其包含的所有内容生成的,那么它将具有与代码相同的路径,并且您不必导入它。我可能错了,但我突然想到,这可能是问题所在。我不知道我对你的理解是否正确。但是R类的路径与我的代码不同。我的意思是R在gen文件夹中,代码在src文件夹中。如果我删除了导入,我会得到一个编译错误,我必须导入R类。你知道为什么你的R与你的代码不在同一条路径上吗?这对我来说并不寻常。我只是怀疑错误可能来自这种不匹配。有两个单独的文件夹,一个是R类的,一个是src代码的,这难道不正常吗。我以前看到的所有Android项目都有相同的方案。在你的项目文件夹下,你会有一个src文件夹和一个res文件夹。在gen文件夹中,您将有R.java,根据我的经验,该文件中的包名应该与应用程序的其余部分相同。我并不是说这就是问题所在;这对我来说很奇怪,这就是我提到它的原因。你能发布row_three_textviews.xml吗?你使用的是哪一版本的Android?你能发布row_three_textviews.xml吗?你使用的是什么版本的Android?
package com.study.semesterplaner.vorlesungszeit;

import java.util.ArrayList;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;

import com.study.constants.IntentConstants;
import com.study.droid.R;
import common.vorlesung.Vorlesung;
import common.vorlesung.VorlesungszeitHaeufigkeit;
import common.vorlesung.vorlesungszeit.Vorlesungszeit;

public class VorlesungszeitListActivity extends Activity{

    private ListView _listView;
    private ArrayList<Vorlesungszeit> _vorlesungszeiten;
    private VorlesungszeitListAdapter _listAdapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.list_with_add_button);

        Vorlesung selectedVorlesung = (Vorlesung) getIntent().getExtras().get(IntentConstants.INTENT_VORLESUNG_DETAILS);
        _vorlesungszeiten = selectedVorlesung.getVorlesungsZeiten();

        _listView = (ListView) findViewById(R.id.listView1);
        _listAdapter = new VorlesungszeitListAdapter();
        _listView.setAdapter(_listAdapter);
    }

    private class VorlesungszeitListAdapter extends BaseAdapter{

        @Override
        public int getCount() {
            return _vorlesungszeiten.size();
        }

        @Override
        public Object getItem(int position) {
            return _vorlesungszeiten.get(position);
        }

        @Override
        public long getItemId(int position) {
            return position;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            View view = convertView;
            LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            view = vi.inflate(R.layout.row_three_textviews, null);
            TextView top = (TextView) view.findViewById(R.id.row_three_textview_ONE);
            TextView mid = (TextView) view.findViewById(R.id.row_three_textview_TWO);
            TextView bottom = (TextView) view.findViewById(R.id.row_three_textview_THREE);

            Vorlesungszeit vZeit = _vorlesungszeiten.get(position);

            top.setText(vZeit.getTag() + ", " + vZeit.getVorlesungsbeginn() + " - " + vZeit.getVorlesungsende() + " Uhr");
            mid.setText("Raum: " + vZeit.getRaum());
            bottom.setText(VorlesungszeitHaeufigkeit.getHauefigkeitText(vZeit.getHaeufigkeit()));

            return view;
        }

    }
}
03-17 21:48:38.867: E/AndroidRuntime(8864): FATAL EXCEPTION: main
03-17 21:48:38.867: E/AndroidRuntime(8864): java.lang.NullPointerException
03-17 21:48:38.867: E/AndroidRuntime(8864):     at android.widget.ListView.measureScrapChild(ListView.java:1136)
03-17 21:48:38.867: E/AndroidRuntime(8864):     at android.widget.ListView.measureHeightOfChildren(ListView.java:1267)
03-17 21:48:38.867: E/AndroidRuntime(8864):     at android.widget.ListView.onMeasure(ListView.java:1128)
03-17 21:48:38.867: E/AndroidRuntime(8864):     at android.view.View.measure(View.java:8524)
03-17 21:48:38.867: E/AndroidRuntime(8864):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3257)
03-17 21:48:38.867: E/AndroidRuntime(8864):     at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1017)
03-17 21:48:38.867: E/AndroidRuntime(8864):     at android.widget.LinearLayout.measureVertical(LinearLayout.java:386)
03-17 21:48:38.867: E/AndroidRuntime(8864):     at android.widget.LinearLayout.onMeasure(LinearLayout.java:309)
03-17 21:48:38.867: E/AndroidRuntime(8864):     at android.view.View.measure(View.java:8524)
03-17 21:48:38.867: E/AndroidRuntime(8864):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3257)
03-17 21:48:38.867: E/AndroidRuntime(8864):     at android.widget.FrameLayout.onMeasure(FrameLayout.java:250)
03-17 21:48:38.867: E/AndroidRuntime(8864):     at android.view.View.measure(View.java:8524)
03-17 21:48:38.867: E/AndroidRuntime(8864):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3257)
03-17 21:48:38.867: E/AndroidRuntime(8864):     at android.widget.FrameLayout.onMeasure(FrameLayout.java:250)
03-17 21:48:38.867: E/AndroidRuntime(8864):     at android.view.View.measure(View.java:8524)
03-17 21:48:38.867: E/AndroidRuntime(8864):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3257)
03-17 21:48:38.867: E/AndroidRuntime(8864):     at android.widget.FrameLayout.onMeasure(FrameLayout.java:250)
03-17 21:48:38.867: E/AndroidRuntime(8864):     at android.view.View.measure(View.java:8524)
03-17 21:48:38.867: E/AndroidRuntime(8864):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3257)
03-17 21:48:38.867: E/AndroidRuntime(8864):     at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1017)
03-17 21:48:38.867: E/AndroidRuntime(8864):     at android.widget.LinearLayout.measureVertical(LinearLayout.java:386)
03-17 21:48:38.867: E/AndroidRuntime(8864):     at android.widget.LinearLayout.onMeasure(LinearLayout.java:309)
03-17 21:48:38.867: E/AndroidRuntime(8864):     at android.view.View.measure(View.java:8524)
03-17 21:48:38.867: E/AndroidRuntime(8864):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3257)
03-17 21:48:38.867: E/AndroidRuntime(8864):     at android.widget.FrameLayout.onMeasure(FrameLayout.java:250)
03-17 21:48:38.867: E/AndroidRuntime(8864):     at android.view.View.measure(View.java:8524)
03-17 21:48:38.867: E/AndroidRuntime(8864):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3257)
03-17 21:48:38.867: E/AndroidRuntime(8864):     at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1017)
03-17 21:48:38.867: E/AndroidRuntime(8864):     at android.widget.LinearLayout.measureVertical(LinearLayout.java:386)
03-17 21:48:38.867: E/AndroidRuntime(8864):     at android.widget.LinearLayout.onMeasure(LinearLayout.java:309)
03-17 21:48:38.867: E/AndroidRuntime(8864):     at android.view.View.measure(View.java:8524)
03-17 21:48:38.867: E/AndroidRuntime(8864):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3257)
03-17 21:48:38.867: E/AndroidRuntime(8864):     at android.widget.FrameLayout.onMeasure(FrameLayout.java:250)
03-17 21:48:38.867: E/AndroidRuntime(8864):     at android.view.View.measure(View.java:8524)
03-17 21:48:38.867: E/AndroidRuntime(8864):     at android.widget.LinearLayout.measureVertical(LinearLayout.java:531)
03-17 21:48:38.867: E/AndroidRuntime(8864):     at android.widget.LinearLayout.onMeasure(LinearLayout.java:309)
03-17 21:48:38.867: E/AndroidRuntime(8864):     at android.view.View.measure(View.java:8524)
03-17 21:48:38.867: E/AndroidRuntime(8864):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3257)
03-17 21:48:38.867: E/AndroidRuntime(8864):     at android.widget.FrameLayout.onMeasure(FrameLayout.java:250)
03-17 21:48:38.867: E/AndroidRuntime(8864):     at android.view.View.measure(View.java:8524)
03-17 21:48:38.867: E/AndroidRuntime(8864):     at android.view.ViewRoot.performTraversals(ViewRoot.java:915)
03-17 21:48:38.867: E/AndroidRuntime(8864):     at android.view.ViewRoot.handleMessage(ViewRoot.java:1991)
03-17 21:48:38.867: E/AndroidRuntime(8864):     at android.os.Handler.dispatchMessage(Handler.java:99)
03-17 21:48:38.867: E/AndroidRuntime(8864):     at android.os.Looper.loop(Looper.java:150)
03-17 21:48:38.867: E/AndroidRuntime(8864):     at android.app.ActivityThread.main(ActivityThread.java:4293)
03-17 21:48:38.867: E/AndroidRuntime(8864):     at java.lang.reflect.Method.invokeNative(Native Method)
03-17 21:48:38.867: E/AndroidRuntime(8864):     at java.lang.reflect.Method.invoke(Method.java:507)
03-17 21:48:38.867: E/AndroidRuntime(8864):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:849)
03-17 21:48:38.867: E/AndroidRuntime(8864):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:607)
03-17 21:48:38.867: E/AndroidRuntime(8864):     at dalvik.system.NativeStart.main(Native Method)