Java sqlite查询未在android中执行

Java sqlite查询未在android中执行,java,android,sqlite,Java,Android,Sqlite,我有下面的方法,我想查询数据库 public String getCurrentMonthTotal() { String totalSum = "0.00"; Calendar cal = Calendar.getInstance(); int currentMonth = cal.get(Calendar.MONTH); Cursor cursor = database.query("expenses"

我有下面的方法,我想查询数据库

public String getCurrentMonthTotal() {
        String totalSum = "0.00";       
        Calendar cal = Calendar.getInstance();      
        int currentMonth = cal.get(Calendar.MONTH);
        Cursor cursor = database.query("expenses",
                new String[] { "SUM(\"amount\")" }, "expensemonth="
                        + currentMonth, null, null, null, null);
        if (cursor.moveToFirst()) {
            while (!cursor.isAfterLast()) {
                totalSum = cursor.getString(cursor.getColumnIndex("amount"));
                // do what ever you want here
                cursor.moveToNext();
            }
        }
        cursor.close();
        return totalSum;
    }
但当应用程序达到这一点时就会崩溃。你知道为什么吗

日志跟踪

12-17 02:46:37.893: E/AndroidRuntime(837):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059)
12-17 02:46:37.893: E/AndroidRuntime(837):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
12-17 02:46:37.893: E/AndroidRuntime(837):  at android.app.ActivityThread.access$600(ActivityThread.java:130)
12-17 02:46:37.893: E/AndroidRuntime(837):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
12-17 02:46:37.893: E/AndroidRuntime(837):  at android.os.Handler.dispatchMessage(Handler.java:99)
12-17 02:46:37.893: E/AndroidRuntime(837):  at android.os.Looper.loop(Looper.java:137)
12-17 02:46:37.893: E/AndroidRuntime(837):  at android.app.ActivityThread.main(ActivityThread.java:4745)
12-17 02:46:37.893: E/AndroidRuntime(837):  at java.lang.reflect.Method.invokeNative(Native Method)
12-17 02:46:37.893: E/AndroidRuntime(837):  at java.lang.reflect.Method.invoke(Method.java:511)
12-17 02:46:37.893: E/AndroidRuntime(837):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
12-17 02:46:37.893: E/AndroidRuntime(837):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
12-17 02:46:37.893: E/AndroidRuntime(837):  at dalvik.system.NativeStart.main(Native Method)
12-17 02:46:37.893: E/AndroidRuntime(837): Caused by: java.lang.NullPointerException
12-17 02:46:37.893: E/AndroidRuntime(837):  at com.technowizsol.easyexpensemanager.ExpenseList.onCreate(ExpenseList.java:21)
12-17 02:46:37.893: E/AndroidRuntime(837):  at android.app.Activity.performCreate(Activity.java:5008)
12-17 02:46:37.893: E/AndroidRuntime(837):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
12-17 02:46:37.893: E/AndroidRuntime(837):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
12-17 02:46:37.893: E/AndroidRuntime(837):  ... 11 more
12-17 02:49:03.202: E/Trace(885): error opening trace file: No such file or directory (2)
12-17 02:49:04.003: D/gralloc_goldfish(885): Emulator without GPU emulation detected.

如果没有LogCat错误,我们只能猜测。。。但这感觉不对:

totalSum = cursor.getString(cursor.getColumnIndex("amount"));
我不认为Sum列名为“amount”,也不需要一行循环。尝试:

if (cursor.moveToFirst()) {
    totalSum = cursor.getString(0); // You can use getInt()
}

发布日志猫错误。请发布日志猫堆栈跟踪。
原因:com.technowizsol.easyexpensemanager.ExpenseList.onCreate(ExpenseList.java:21)
您试图访问
onCreate()中的空变量。请发布您的
onCreate()
,并指出哪一行是21。