Android 带有ListView和setAdapter的NullPointerException
我一直收到以下nullPointerException,我不太明白,如果您能提供任何帮助,我将不胜感激。从DB中删除程序query(),然后使用适配器填充ListViewAndroid 带有ListView和setAdapter的NullPointerException,android,Android,我一直收到以下nullPointerException,我不太明白,如果您能提供任何帮助,我将不胜感激。从DB中删除程序query(),然后使用适配器填充ListView public class ViewListingsActivity extends Activity { SQLiteDatabase db; ListView listview; Button button; SimpleCursorAdapter adapter; privat
public class ViewListingsActivity extends Activity {
SQLiteDatabase db;
ListView listview;
Button button;
SimpleCursorAdapter adapter;
private static final String TAG = DBHelper.class.getSimpleName();
public static final String DB_ADDRESS = BaseColumns._ID;
public static final String DB_DESCRIPTION = "Description";
public static final String DB_URL = "URL";
final String dbTable = "Realtor_SMS_Table";
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.viewlisting);
listview = (ListView) findViewById(R.id.list);
button = (Button) findViewById(R.id.button1);
DBHelper dbhelper = new DBHelper(ViewListingsActivity.this);
db = dbhelper.getWritableDatabase();
Cursor cursor = db.query(dbTable, null, null, null, null, null, null);
startManagingCursor(cursor);
String[] from = new String[] { DB_ADDRESS, DB_DESCRIPTION, DB_URL };
int[] to = new int[] { R.id.textlistaddress, R.id.textlistdescription,
R.id.textlisturl };
adapter = new SimpleCursorAdapter(this, R.layout.rowlist, cursor, from,
to);
listview.setAdapter(adapter);
}
}
这是我的堆栈跟踪
----- pid 764 at 2011-08-05 13:26:24 -----
Cmd line: com.RealtorSMS
DALVIK THREADS:
"main" prio=5 tid=3 NATIVE
| group="main" sCount=1 dsCount=0 s=0 obj=0x40018e70
| sysTid=764 nice=0 sched=0/0 handle=-1096475492
at android.os.BinderProxy.transact(Native Method)
at android.app.ActivityManagerProxy.handleApplicationError(ActivityManagerNative.java:2103)
at com.android.internal.os.RuntimeInit.crash(RuntimeInit.java:302)
at com.android.internal.os.RuntimeInit$UncaughtHandler.uncaughtException(RuntimeInit.java:75)
at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:887)
at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:884)
at dalvik.system.NativeStart.main(Native Method)
"Binder Thread #3" prio=5 tid=15 NATIVE
| group="main" sCount=1 dsCount=0 s=0 obj=0x43594008
| sysTid=771 nice=0 sched=0/0 handle=1505008
at dalvik.system.NativeStart.run(Native Method)
"Binder Thread #2" prio=5 tid=13 NATIVE
| group="main" sCount=1 dsCount=0 s=0 obj=0x43590120
| sysTid=770 nice=0 sched=0/0 handle=1487504
at dalvik.system.NativeStart.run(Native Method)
"Binder Thread #1" prio=5 tid=11 NATIVE
| group="main" sCount=1 dsCount=0 s=0 obj=0x4358e9b0
| sysTid=769 nice=0 sched=0/0 handle=1396928
at dalvik.system.NativeStart.run(Native Method)
"JDWP" daemon prio=5 tid=9 VMWAIT
| group="system" sCount=1 dsCount=0 s=0 obj=0x4358d2a0
| sysTid=768 nice=0 sched=0/0 handle=1493656
at dalvik.system.NativeStart.run(Native Method)
"Signal Catcher" daemon prio=5 tid=7 RUNNABLE
| group="system" sCount=0 dsCount=0 s=0 obj=0x4358d1e8
| sysTid=767 nice=0 sched=0/0 handle=1490832
at dalvik.system.NativeStart.run(Native Method)
"HeapWorker" daemon prio=5 tid=5 VMWAIT
| group="system" sCount=1 dsCount=0 s=0 obj=0x427d1928
| sysTid=765 nice=0 sched=0/0 handle=1488192
at dalvik.system.NativeStart.run(Native Method)
----- end 764 -----
下面是两个XML
rowlist.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView android:layout_height="wrap_content" android:text="TextView" android:layout_width="match_parent" android:id="@+id/textlistaddress"></TextView>
<TextView android:layout_height="wrap_content" android:text="TextView" android:layout_width="match_parent" android:id="@+id/textlistdescription"></TextView>
<TextView android:layout_height="wrap_content" android:text="TextView" android:layout_width="match_parent" android:id="@+id/textlisturl"></TextView>
</LinearLayout>
检查viewlisting.xml,它不包含id为R.id.list的ListView我想编译器或Eclipse可能有问题。 我今晚也遇到了这个问题。但是在我重命名了
列表视图ID
,并且重新编译了XML文件之后,它就可以工作了
我发现有时候,XML文件中的更改不会自动重建。有时,XML文件的生成结果似乎丢失了。在Eclipse Project->Clean中运行检查您是否有这一行的add-in onCreate类方法: setContentView(R.layout.your_xml) 我也有同样的问题。 我发现我使用了带有错误参数的
setcontentview()
,因为我从另一个类复制并粘贴了代码。
我纠正了错误的论点,问题解决了 Proapp Aplicativos的回答是:“检查您是否在创建类方法这一行中有外接程序: setContentView(R.layout.your_xml);”
帮助我解决了一个问题。请粘贴堆栈跟踪。根据设置,似乎有一些内容可能为空。哪一行抛出nullPointerException,是的,我们可以得到堆栈跟踪吗?根据调试,它使用最后一行listview.setAdapter(adapter);抱歉,我的意思是viewlisting.xml:),因为如果在listview.setAdapter(适配器)中有NullPointerException;行表示listview为空,并且listview=(listview)findViewById(R.id.list)未找到它;viewlisting.xml文件在ListView标记中确实具有正确的id,或者我缺少什么?XML已经粘贴到了instrange中,看起来还可以,你能从ddms粘贴stacktrace吗?好的,所以在疯狂了大约20分钟后,我决定从Activity更改为ListActivity,但这不起作用,所以我将其更改为重新编译关机、eclipse和avd,然后重新启动,突然它起了作用。你难道不喜欢日食的浮躁吗。不知道为什么我总是在其他Java工作中使用NetBeans。谢谢!这也是我的问题。我真傻。。再次感谢!
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent" android:background="@drawable/realtorbackground"
android:weightSum="1">
<TextView android:layout_weight="0.08" android:layout_height="wrap_content"
android:layout_width="match_parent" android:id="@+id/textViewtitleview"
android:gravity="center" android:textSize="30dp" android:text="Current Listings"></TextView>
<ListView android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/list"></ListView>
<Button android:id="@+id/button1" android:layout_width="match_parent"
android:layout_height="wrap_content" android:text="Delete Listing"></Button>
</LinearLayout>
08-05 13:26:24.077: ERROR/AndroidRuntime(764): Uncaught handler: thread main exiting due to uncaught exception
08-05 13:26:24.087: ERROR/AndroidRuntime(764): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.RealtorSMS/com.RealtorSMS.ViewListingsActivity}: java.lang.NullPointerException
08-05 13:26:24.087: ERROR/AndroidRuntime(764): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2268)
08-05 13:26:24.087: ERROR/AndroidRuntime(764): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2284)
08-05 13:26:24.087: ERROR/AndroidRuntime(764): at android.app.ActivityThread.access$1800(ActivityThread.java:112)
08-05 13:26:24.087: ERROR/AndroidRuntime(764): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1692)
08-05 13:26:24.087: ERROR/AndroidRuntime(764): at android.os.Handler.dispatchMessage(Handler.java:99)
08-05 13:26:24.087: ERROR/AndroidRuntime(764): at android.os.Looper.loop(Looper.java:123)
08-05 13:26:24.087: ERROR/AndroidRuntime(764): at android.app.ActivityThread.main(ActivityThread.java:3948)
08-05 13:26:24.087: ERROR/AndroidRuntime(764): at java.lang.reflect.Method.invokeNative(Native Method)
08-05 13:26:24.087: ERROR/AndroidRuntime(764): at java.lang.reflect.Method.invoke(Method.java:521)
08-05 13:26:24.087: ERROR/AndroidRuntime(764): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:782)
08-05 13:26:24.087: ERROR/AndroidRuntime(764): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:540)
08-05 13:26:24.087: ERROR/AndroidRuntime(764): at dalvik.system.NativeStart.main(Native Method)
08-05 13:26:24.087: ERROR/AndroidRuntime(764): Caused by: java.lang.NullPointerException
08-05 13:26:24.087: ERROR/AndroidRuntime(764): at com.RealtorSMS.ViewListingsActivity.onCreate(ViewListingsActivity.java:39)
08-05 13:26:24.087: ERROR/AndroidRuntime(764): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1123)
08-05 13:26:24.087: ERROR/AndroidRuntime(764): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2231)
08-05 13:26:24.087: ERROR/AndroidRuntime(764): ... 11 more