0

我的数据库类是:

public class Database extends SQLiteOpenHelper {
private static final int DB_VERSION = 1;
private static final String DB_NAME = "databse";

public static final String TABLE_SOURCES = "sources";
public static final String ID = "_id";
public static final String COL_TITLE = "title";
public static final String COL_URL = "url";
public static final String COL_UPDATE = "update";
public static final String COL_PERIOD = "period";   

private static final String CREATE_TABLE_SOURCES = "CREATE TABLE "
        + TABLE_SOURCES + " (" + ID
        + " integer PRIMARY KEY AUTOINCREMENT, " + COL_TITLE
        + " text NOT NULL ); ";


private static final String DB_SCHEMA = CREATE_TABLE_SOURCES;

public Database(Context context) {
    super(context, DB_NAME, null, DB_VERSION);
}

@Override
public void onCreate(SQLiteDatabase db) {
    db.execSQL(DB_SCHEMA);
    Log.d("create db", "create 2 db");
    seedData(db);
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    db.execSQL("DROP TABLE IF EXISTS " + TABLE_SOURCES);
    onCreate(db);
}

/**
 * Create sample data to use
 * 
 * @param db
 *            The open database
 */
private void seedData(SQLiteDatabase db) {
    db.execSQL("insert into sources (title) values ('new');");
    Log.d("insert to db", "insert to db 2 records");

}



// Getting contacts Count
public int getContactsCount() {
    String countQuery = "SELECT  * FROM " + TABLE_SOURCES;
    SQLiteDatabase db = this.getReadableDatabase();
    Cursor cursor = db.rawQuery(countQuery, null);
    cursor.close();

    // return count
    return cursor.getCount();
}    

}

我用它:

private Database db = new Database(this);
Toast.makeText(getApplicationContext(), String.valueOf(db.getContactsCount()),
Toast.LENGTH_LONG).show();

但我的应用程序无法运行,不幸的是,myapp 停止了。

什么问题?

日志猫:

09-19 06:08:29.090: I/Choreographer(1696): Skipped 55 frames!  The application may be doing too much work on its main thread.
09-19 06:08:41.649: E/Trace(1753): error opening trace file: No such file or directory (2)
09-19 06:08:42.389: I/Choreographer(1753): Skipped 118 frames!  The application may be doing too much work on its main thread.
09-19 06:08:42.450: D/gralloc_goldfish(1753): Emulator without GPU emulation detected.
09-19 06:08:42.570: I/Choreographer(1753): Skipped 70 frames!  The application may be doing too much work on its main thread.
09-19 06:08:44.290: D/AndroidRuntime(1753): Shutting down VM
09-19 06:08:44.290: W/dalvikvm(1753): threadid=1: thread exiting with uncaught exception (group=0x40a71930)
09-19 06:08:44.321: E/AndroidRuntime(1753): FATAL EXCEPTION: main
09-19 06:08:44.321: E/AndroidRuntime(1753): android.database.sqlite.SQLiteException: Can't downgrade database from version 2 to 1
09-19 06:08:44.321: E/AndroidRuntime(1753):     at android.database.sqlite.SQLiteOpenHelper.onDowngrade(SQLiteOpenHelper.java:361)
09-19 06:08:44.321: E/AndroidRuntime(1753):     at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:255)
09-19 06:08:44.321: E/AndroidRuntime(1753):     at android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:188)
09-19 06:08:44.321: E/AndroidRuntime(1753):     at com.ironfort.ironf.Database.getContactsCount(Database.java:66)
09-19 06:08:44.321: E/AndroidRuntime(1753):     at com.ironfort.ironf.Main$1.onClick(Main.java:28)
09-19 06:08:44.321: E/AndroidRuntime(1753):     at android.view.View.performClick(View.java:4204)
09-19 06:08:44.321: E/AndroidRuntime(1753):     at android.view.View$PerformClick.run(View.java:17355)
09-19 06:08:44.321: E/AndroidRuntime(1753):     at android.os.Handler.handleCallback(Handler.java:725)
09-19 06:08:44.321: E/AndroidRuntime(1753):     at android.os.Handler.dispatchMessage(Handler.java:92)
09-19 06:08:44.321: E/AndroidRuntime(1753):     at android.os.Looper.loop(Looper.java:137)
09-19 06:08:44.321: E/AndroidRuntime(1753):     at android.app.ActivityThread.main(ActivityThread.java:5041)
09-19 06:08:44.321: E/AndroidRuntime(1753):     at java.lang.reflect.Method.invokeNative(Native Method)
09-19 06:08:44.321: E/AndroidRuntime(1753):     at java.lang.reflect.Method.invoke(Method.java:511)
09-19 06:08:44.321: E/AndroidRuntime(1753):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
09-19 06:08:44.321: E/AndroidRuntime(1753):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
09-19 06:08:44.321: E/AndroidRuntime(1753):     at dalvik.system.NativeStart.main(Native Method)
09-19 06:08:51.490: E/Trace(1769): error opening trace file: No such file or directory (2)
09-19 06:15:07.089: E/Trace(1912): error opening trace file: No such file or directory (2)
09-19 06:15:07.770: I/Choreographer(1912): Skipped 98 frames!  The application may be doing too much work on its main thread.
09-19 06:15:07.839: D/gralloc_goldfish(1912): Emulator without GPU emulation detected.
09-19 06:15:07.980: I/Choreographer(1912): Skipped 90 frames!  The application may be doing too much work on its main thread.
09-19 06:16:38.419: D/AndroidRuntime(1912): Shutting down VM
09-19 06:16:38.419: W/dalvikvm(1912): threadid=1: thread exiting with uncaught exception (group=0x40a71930)
09-19 06:16:38.449: E/AndroidRuntime(1912): FATAL EXCEPTION: main
09-19 06:16:38.449: E/AndroidRuntime(1912): android.database.sqlite.SQLiteException: Can't downgrade database from version 2 to 1
09-19 06:16:38.449: E/AndroidRuntime(1912):     at android.database.sqlite.SQLiteOpenHelper.onDowngrade(SQLiteOpenHelper.java:361)
09-19 06:16:38.449: E/AndroidRuntime(1912):     at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:255)
09-19 06:16:38.449: E/AndroidRuntime(1912):     at android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:188)
09-19 06:16:38.449: E/AndroidRuntime(1912):     at com.ironfort.ironf.Database.getContactsCount(Database.java:66)
09-19 06:16:38.449: E/AndroidRuntime(1912):     at com.ironfort.ironf.Main$1.onClick(Main.java:28)
09-19 06:16:38.449: E/AndroidRuntime(1912):     at android.view.View.performClick(View.java:4204)
09-19 06:16:38.449: E/AndroidRuntime(1912):     at android.view.View$PerformClick.run(View.java:17355)
09-19 06:16:38.449: E/AndroidRuntime(1912):     at android.os.Handler.handleCallback(Handler.java:725)
09-19 06:16:38.449: E/AndroidRuntime(1912):     at android.os.Handler.dispatchMessage(Handler.java:92)
09-19 06:16:38.449: E/AndroidRuntime(1912):     at android.os.Looper.loop(Looper.java:137)
09-19 06:16:38.449: E/AndroidRuntime(1912):     at android.app.ActivityThread.main(ActivityThread.java:5041)
09-19 06:16:38.449: E/AndroidRuntime(1912):     at java.lang.reflect.Method.invokeNative(Native Method)
09-19 06:16:38.449: E/AndroidRuntime(1912):     at java.lang.reflect.Method.invoke(Method.java:511)
09-19 06:16:38.449: E/AndroidRuntime(1912):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
09-19 06:16:38.449: E/AndroidRuntime(1912):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
09-19 06:16:38.449: E/AndroidRuntime(1912):     at dalvik.system.NativeStart.main(Native Method)
09-19 06:16:38.770: D/dalvikvm(1912): GC_CONCURRENT freed 141K, 10% free 2610K/2892K, paused 71ms+35ms, total 264ms
09-19 06:16:46.289: E/Trace(1952): error opening trace file: No such file or directory (2)
09-19 06:17:06.619: E/Trace(2001): error opening trace file: No such file or directory (2)
09-19 06:17:07.460: I/Choreographer(2001): Skipped 106 frames!  The application may be doing too much work on its main thread.
09-19 06:17:07.520: D/gralloc_goldfish(2001): Emulator without GPU emulation detected.
09-19 06:17:07.660: I/Choreographer(2001): Skipped 79 frames!  The application may be doing too much work on its main thread.
09-19 06:18:21.050: I/Choreographer(2001): Skipped 92 frames!  The application may be doing too much work on its main thread.
09-19 06:18:21.160: D/AndroidRuntime(2001): Shutting down VM
09-19 06:18:21.160: W/dalvikvm(2001): threadid=1: thread exiting with uncaught exception (group=0x40a71930)
09-19 06:18:21.179: E/AndroidRuntime(2001): FATAL EXCEPTION: main
09-19 06:18:21.179: E/AndroidRuntime(2001): android.database.sqlite.SQLiteException: Can't downgrade database from version 2 to 1
09-19 06:18:21.179: E/AndroidRuntime(2001):     at android.database.sqlite.SQLiteOpenHelper.onDowngrade(SQLiteOpenHelper.java:361)
09-19 06:18:21.179: E/AndroidRuntime(2001):     at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:255)
09-19 06:18:21.179: E/AndroidRuntime(2001):     at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:164)
09-19 06:18:21.179: E/AndroidRuntime(2001):     at com.ironfort.ironf.Database.getContactsCount(Database.java:66)
09-19 06:18:21.179: E/AndroidRuntime(2001):     at com.ironfort.ironf.Main$1.onClick(Main.java:28)
09-19 06:18:21.179: E/AndroidRuntime(2001):     at android.view.View.performClick(View.java:4204)
09-19 06:18:21.179: E/AndroidRuntime(2001):     at android.view.View$PerformClick.run(View.java:17355)
09-19 06:18:21.179: E/AndroidRuntime(2001):     at android.os.Handler.handleCallback(Handler.java:725)
09-19 06:18:21.179: E/AndroidRuntime(2001):     at android.os.Handler.dispatchMessage(Handler.java:92)
09-19 06:18:21.179: E/AndroidRuntime(2001):     at android.os.Looper.loop(Looper.java:137)
09-19 06:18:21.179: E/AndroidRuntime(2001):     at android.app.ActivityThread.main(ActivityThread.java:5041)
09-19 06:18:21.179: E/AndroidRuntime(2001):     at java.lang.reflect.Method.invokeNative(Native Method)
09-19 06:18:21.179: E/AndroidRuntime(2001):     at java.lang.reflect.Method.invoke(Method.java:511)
09-19 06:18:21.179: E/AndroidRuntime(2001):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
09-19 06:18:21.179: E/AndroidRuntime(2001):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
09-19 06:18:21.179: E/AndroidRuntime(2001):     at dalvik.system.NativeStart.main(Native Method)
09-19 06:18:21.439: D/dalvikvm(2001): GC_CONCURRENT freed 149K, 10% free 2610K/2900K, paused 72ms+14ms, total 218ms
09-19 06:18:28.510: E/Trace(2037): error opening trace file: No such file or directory (2)
09-19 06:21:48.310: E/Trace(2135): error opening trace file: No such file or directory (2)
09-19 06:21:49.101: I/Choreographer(2135): Skipped 127 frames!  The application may be doing too much work on its main thread.
09-19 06:21:49.130: D/gralloc_goldfish(2135): Emulator without GPU emulation detected.
09-19 06:21:49.270: I/Choreographer(2135): Skipped 81 frames!  The application may be doing too much work on its main thread.
09-19 06:22:00.459: D/AndroidRuntime(2135): Shutting down VM
09-19 06:22:00.459: W/dalvikvm(2135): threadid=1: thread exiting with uncaught exception (group=0x40a71930)
09-19 06:22:00.480: E/AndroidRuntime(2135): FATAL EXCEPTION: main
09-19 06:22:00.480: E/AndroidRuntime(2135): android.database.sqlite.SQLiteException: Can't downgrade database from version 2 to 1
09-19 06:22:00.480: E/AndroidRuntime(2135):     at android.database.sqlite.SQLiteOpenHelper.onDowngrade(SQLiteOpenHelper.java:361)
09-19 06:22:00.480: E/AndroidRuntime(2135):     at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:255)
09-19 06:22:00.480: E/AndroidRuntime(2135):     at android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:188)
09-19 06:22:00.480: E/AndroidRuntime(2135):     at com.ironfort.ironf.Database.getContactsCount(Database.java:66)
09-19 06:22:00.480: E/AndroidRuntime(2135):     at com.ironfort.ironf.Main$1.onClick(Main.java:28)
09-19 06:22:00.480: E/AndroidRuntime(2135):     at android.view.View.performClick(View.java:4204)
09-19 06:22:00.480: E/AndroidRuntime(2135):     at android.view.View$PerformClick.run(View.java:17355)
09-19 06:22:00.480: E/AndroidRuntime(2135):     at android.os.Handler.handleCallback(Handler.java:725)
09-19 06:22:00.480: E/AndroidRuntime(2135):     at android.os.Handler.dispatchMessage(Handler.java:92)
09-19 06:22:00.480: E/AndroidRuntime(2135):     at android.os.Looper.loop(Looper.java:137)
09-19 06:22:00.480: E/AndroidRuntime(2135):     at android.app.ActivityThread.main(ActivityThread.java:5041)
09-19 06:22:00.480: E/AndroidRuntime(2135):     at java.lang.reflect.Method.invokeNative(Native Method)
09-19 06:22:00.480: E/AndroidRuntime(2135):     at java.lang.reflect.Method.invoke(Method.java:511)
09-19 06:22:00.480: E/AndroidRuntime(2135):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
09-19 06:22:00.480: E/AndroidRuntime(2135):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
09-19 06:22:00.480: E/AndroidRuntime(2135):     at dalvik.system.NativeStart.main(Native Method)
09-19 06:22:00.689: D/dalvikvm(2135): GC_CONCURRENT freed 155K, 11% free 2610K/2904K, paused 71ms+4ms, total 192ms
09-19 06:22:07.649: E/Trace(2154): error opening trace file: No such file or directory (2)
09-19 06:28:21.729: E/Trace(2294): error opening trace file: No such file or directory (2)
09-19 06:28:22.429: I/Choreographer(2294): Skipped 100 frames!  The application may be doing too much work on its main thread.
09-19 06:28:22.450: D/gralloc_goldfish(2294): Emulator without GPU emulation detected.
09-19 06:28:22.599: I/Choreographer(2294): Skipped 68 frames!  The application may be doing too much work on its main thread.
09-19 06:28:25.000: I/Choreographer(2294): Skipped 97 frames!  The application may be doing too much work on its main thread.
09-19 06:28:25.160: D/AndroidRuntime(2294): Shutting down VM
09-19 06:28:25.160: W/dalvikvm(2294): threadid=1: thread exiting with uncaught exception (group=0x40a71930)
09-19 06:28:25.279: E/AndroidRuntime(2294): FATAL EXCEPTION: main
09-19 06:28:25.279: E/AndroidRuntime(2294): android.database.sqlite.SQLiteException: Can't downgrade database from version 2 to 1
09-19 06:28:25.279: E/AndroidRuntime(2294):     at android.database.sqlite.SQLiteOpenHelper.onDowngrade(SQLiteOpenHelper.java:361)
09-19 06:28:25.279: E/AndroidRuntime(2294):     at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:255)
09-19 06:28:25.279: E/AndroidRuntime(2294):     at android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:188)
09-19 06:28:25.279: E/AndroidRuntime(2294):     at com.ironfort.ironf.Database.getContactsCount(Database.java:66)
09-19 06:28:25.279: E/AndroidRuntime(2294):     at com.ironfort.ironf.Main$1.onClick(Main.java:28)
09-19 06:28:25.279: E/AndroidRuntime(2294):     at android.view.View.performClick(View.java:4204)
09-19 06:28:25.279: E/AndroidRuntime(2294):     at android.view.View$PerformClick.run(View.java:17355)
09-19 06:28:25.279: E/AndroidRuntime(2294):     at android.os.Handler.handleCallback(Handler.java:725)
09-19 06:28:25.279: E/AndroidRuntime(2294):     at android.os.Handler.dispatchMessage(Handler.java:92)
09-19 06:28:25.279: E/AndroidRuntime(2294):     at android.os.Looper.loop(Looper.java:137)
09-19 06:28:25.279: E/AndroidRuntime(2294):     at android.app.ActivityThread.main(ActivityThread.java:5041)
09-19 06:28:25.279: E/AndroidRuntime(2294):     at java.lang.reflect.Method.invokeNative(Native Method)
09-19 06:28:25.279: E/AndroidRuntime(2294):     at java.lang.reflect.Method.invoke(Method.java:511)
09-19 06:28:25.279: E/AndroidRuntime(2294):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
09-19 06:28:25.279: E/AndroidRuntime(2294):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
09-19 06:28:25.279: E/AndroidRuntime(2294):     at dalvik.system.NativeStart.main(Native Method)
09-19 06:28:25.460: D/dalvikvm(2294): GC_CONCURRENT freed 162K, 11% free 2611K/2912K, paused 71ms+5ms, total 269ms
09-19 06:28:34.670: E/Trace(2314): error opening trace file: No such file or directory (2)
09-19 06:32:06.010: I/Choreographer(2314): Skipped 121 frames!  The application may be doing too much work on its main thread.
09-19 06:32:06.060: D/gralloc_goldfish(2314): Emulator without GPU emulation detected.
09-19 06:32:06.209: I/Choreographer(2314): Skipped 65 frames!  The application may be doing too much work on its main thread.
09-19 06:32:07.141: I/Choreographer(2314): Skipped 92 frames!  The application may be doing too much work on its main thread.
09-19 06:32:07.250: D/AndroidRuntime(2314): Shutting down VM
09-19 06:32:07.250: W/dalvikvm(2314): threadid=1: thread exiting with uncaught exception (group=0x40a71930)
09-19 06:32:07.369: E/AndroidRuntime(2314): FATAL EXCEPTION: main
09-19 06:32:07.369: E/AndroidRuntime(2314): android.database.sqlite.SQLiteException: Can't downgrade database from version 2 to 1
09-19 06:32:07.369: E/AndroidRuntime(2314):     at android.database.sqlite.SQLiteOpenHelper.onDowngrade(SQLiteOpenHelper.java:361)
09-19 06:32:07.369: E/AndroidRuntime(2314):     at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:255)
09-19 06:32:07.369: E/AndroidRuntime(2314):     at android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:188)
09-19 06:32:07.369: E/AndroidRuntime(2314):     at com.ironfort.ironf.Database.getContactsCount(Database.java:66)
09-19 06:32:07.369: E/AndroidRuntime(2314):     at com.ironfort.ironf.Main$1.onClick(Main.java:28)
09-19 06:32:07.369: E/AndroidRuntime(2314):     at android.view.View.performClick(View.java:4204)
09-19 06:32:07.369: E/AndroidRuntime(2314):     at android.view.View$PerformClick.run(View.java:17355)
09-19 06:32:07.369: E/AndroidRuntime(2314):     at android.os.Handler.handleCallback(Handler.java:725)
09-19 06:32:07.369: E/AndroidRuntime(2314):     at android.os.Handler.dispatchMessage(Handler.java:92)
09-19 06:32:07.369: E/AndroidRuntime(2314):     at android.os.Looper.loop(Looper.java:137)
09-19 06:32:07.369: E/AndroidRuntime(2314):     at android.app.ActivityThread.main(ActivityThread.java:5041)
09-19 06:32:07.369: E/AndroidRuntime(2314):     at java.lang.reflect.Method.invokeNative(Native Method)
09-19 06:32:07.369: E/AndroidRuntime(2314):     at java.lang.reflect.Method.invoke(Method.java:511)
09-19 06:32:07.369: E/AndroidRuntime(2314):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
09-19 06:32:07.369: E/AndroidRuntime(2314):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
09-19 06:32:07.369: E/AndroidRuntime(2314):     at dalvik.system.NativeStart.main(Native Method)
09-19 06:32:07.550: D/dalvikvm(2314): GC_CONCURRENT freed 166K, 11% free 2612K/2920K, paused 71ms+35ms, total 271ms
09-19 06:36:32.140: I/Process(2314): Sending signal. PID: 2314 SIG: 9
09-19 06:44:35.450: I/Choreographer(2621): Skipped 203 frames!  The application may be doing too much work on its main thread.
09-19 06:44:35.499: D/gralloc_goldfish(2621): Emulator without GPU emulation detected.
09-19 06:44:35.619: I/Choreographer(2621): Skipped 70 frames!  The application may be doing too much work on its main thread.
09-19 06:44:43.749: D/AndroidRuntime(2621): Shutting down VM
09-19 06:44:43.749: W/dalvikvm(2621): threadid=1: thread exiting with uncaught exception (group=0x40a71930)
09-19 06:44:43.780: E/AndroidRuntime(2621): FATAL EXCEPTION: main
09-19 06:44:43.780: E/AndroidRuntime(2621): android.database.sqlite.SQLiteException: Can't downgrade database from version 2 to 1
09-19 06:44:43.780: E/AndroidRuntime(2621):     at android.database.sqlite.SQLiteOpenHelper.onDowngrade(SQLiteOpenHelper.java:361)
09-19 06:44:43.780: E/AndroidRuntime(2621):     at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:255)
09-19 06:44:43.780: E/AndroidRuntime(2621):     at android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:188)
09-19 06:44:43.780: E/AndroidRuntime(2621):     at com.ironfort.ironf.Database.getContactsCount(Database.java:66)
09-19 06:44:43.780: E/AndroidRuntime(2621):     at com.ironfort.ironf.Main$1.onClick(Main.java:28)
09-19 06:44:43.780: E/AndroidRuntime(2621):     at android.view.View.performClick(View.java:4204)
09-19 06:44:43.780: E/AndroidRuntime(2621):     at android.view.View$PerformClick.run(View.java:17355)
09-19 06:44:43.780: E/AndroidRuntime(2621):     at android.os.Handler.handleCallback(Handler.java:725)
09-19 06:44:43.780: E/AndroidRuntime(2621):     at android.os.Handler.dispatchMessage(Handler.java:92)
09-19 06:44:43.780: E/AndroidRuntime(2621):     at android.os.Looper.loop(Looper.java:137)
09-19 06:44:43.780: E/AndroidRuntime(2621):     at android.app.ActivityThread.main(ActivityThread.java:5041)
09-19 06:44:43.780: E/AndroidRuntime(2621):     at java.lang.reflect.Method.invokeNative(Native Method)
09-19 06:44:43.780: E/AndroidRuntime(2621):     at java.lang.reflect.Method.invoke(Method.java:511)
09-19 06:44:43.780: E/AndroidRuntime(2621):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
09-19 06:44:43.780: E/AndroidRuntime(2621):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
09-19 06:44:43.780: E/AndroidRuntime(2621):     at dalvik.system.NativeStart.main(Native Method)
09-19 06:44:45.720: I/Process(2621): Sending signal. PID: 2621 SIG: 9
09-19 06:44:51.060: E/Trace(2639): error opening trace file: No such file or directory (2)
09-19 06:46:14.880: I/Choreographer(2639): Skipped 205 frames!  The application may be doing too much work on its main thread.
09-19 06:46:14.939: D/gralloc_goldfish(2639): Emulator without GPU emulation detected.
09-19 06:46:15.069: I/Choreographer(2639): Skipped 65 frames!  The application may be doing too much work on its main thread.
09-19 06:46:16.525: I/Choreographer(2639): Skipped 87 frames!  The application may be doing too much work on its main thread.
09-19 06:46:16.630: D/AndroidRuntime(2639): Shutting down VM
09-19 06:46:16.630: W/dalvikvm(2639): threadid=1: thread exiting with uncaught exception (group=0x40a71930)
09-19 06:46:16.649: E/AndroidRuntime(2639): FATAL EXCEPTION: main
09-19 06:46:16.649: E/AndroidRuntime(2639): android.database.sqlite.SQLiteException: Can't downgrade database from version 2 to 1
09-19 06:46:16.649: E/AndroidRuntime(2639):     at android.database.sqlite.SQLiteOpenHelper.onDowngrade(SQLiteOpenHelper.java:361)
09-19 06:46:16.649: E/AndroidRuntime(2639):     at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:255)
09-19 06:46:16.649: E/AndroidRuntime(2639):     at android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:188)
09-19 06:46:16.649: E/AndroidRuntime(2639):     at com.ironfort.ironf.Database.getContactsCount(Database.java:66)
09-19 06:46:16.649: E/AndroidRuntime(2639):     at com.ironfort.ironf.Main$1.onClick(Main.java:28)
09-19 06:46:16.649: E/AndroidRuntime(2639):     at android.view.View.performClick(View.java:4204)
09-19 06:46:16.649: E/AndroidRuntime(2639):     at android.view.View$PerformClick.run(View.java:17355)
09-19 06:46:16.649: E/AndroidRuntime(2639):     at android.os.Handler.handleCallback(Handler.java:725)
09-19 06:46:16.649: E/AndroidRuntime(2639):     at android.os.Handler.dispatchMessage(Handler.java:92)
09-19 06:46:16.649: E/AndroidRuntime(2639):     at android.os.Looper.loop(Looper.java:137)
09-19 06:46:16.649: E/AndroidRuntime(2639):     at android.app.ActivityThread.main(ActivityThread.java:5041)
09-19 06:46:16.649: E/AndroidRuntime(2639):     at java.lang.reflect.Method.invokeNative(Native Method)
09-19 06:46:16.649: E/AndroidRuntime(2639):     at java.lang.reflect.Method.invoke(Method.java:511)
09-19 06:46:16.649: E/AndroidRuntime(2639):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
09-19 06:46:16.649: E/AndroidRuntime(2639):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
09-19 06:46:16.649: E/AndroidRuntime(2639):     at dalvik.system.NativeStart.main(Native Method)
4

1 回答 1

0

试试这个方法

private static final int DB_VERSION = 2; UPDATE HERE

public int getContactsCount() {
    String countQuery = "SELECT  * FROM " + TABLE_SOURCES;
    SQLiteDatabase db = this.getReadableDatabase();
    Cursor cursor = db.rawQuery(countQuery, null);
    int count = cursor.getCount();
    cursor.close();

    // return count
    return count;
}    


private Database db = new Database(this);
Toast.makeText(this, String.valueOf(db.getContactsCount()),
Toast.LENGTH_LONG).show();
于 2013-09-19T06:43:14.437 回答