在Eclipse中开发Android应用程序,麻烦帮忙看看下面这段代码哪里有问题?编译成功后运行虚拟机出现错误。

Context mCtx = null;
DB dbaa = new DB(mCtx);
Cursor cur;
cur=dbaa.getAll();
String[] kind= new String[100];
String[] name= new String[100];
String[] function= new String[100];
int i=1;
for(cur.moveToFirst();!cur.isAfterLast();cur.moveToNext())
{
int kindColumn = cur.getColumnIndex(DB.KEY_KIND);
int nameColumn = cur.getColumnIndex(DB.KEY_NAME);
int functionColumn = cur.getColumnIndex(DB.KEY_FUNCTION);

kind[i] = cur.getString(kindColumn);
name[i] = cur.getString(nameColumn);
function[i] = cur.getString(functionColumn);
i=i+1;
}

拜托 你要把日志 给我们看一下啊 你只是截这个报错的图是没用的 通过看你的代码我感觉应该是空指针问题 位置就是for(cur.moveToFirst();!cur.isAfterLast();cur.moveToNext())
你把日志提供一下吧 这才能让我们知道怎么帮你改追问

第一次提这类问题,不知道截什么图。麻烦你看下这个logcat,能不能说明问题?

追答

你上传的这个图片怎么看不清啊 上面的字 全都变模糊了 你把最上边的 两行复制出来(就是红的字体的最上边两行,第一行是错误原因 第二行是错误位置) 给我看一下 或者加我百度账号 再跟你说

追问

FATAL.EXCEPTION:main
java.lang.NullPointerException
at com.android.add.DB.getAll(DB.java:74)
这是前三行的红字。

追答

.add.DB.getAll 这个告诉你是cur=dbaa.getAll(); 错了,你在之前设置 Context mCtx = null;用空的去创建就会产生空指针 DB dbaa = new DB(mCtx); 你把mCtx 换成 this ,你是要在当前的activity中 创建dbaa的 或者你把你的 = null 去掉 应该就好了

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-06-06
你自己查看下logcat嘛,里面会有exceptioin stack打出来的
第2个回答  2012-06-06
空指针问题,你的mCtx不能是空,这个指的是上下文 ,你赋值this或者Activity.this
相似回答
大家正在搜