2011-09-25 47 views
0

新的android開發,請溫和哈哈。我想用我的SQLite數據庫中的數據填充微調器。我有一個預填充的表,並且能夠成功查詢它。問題是我能夠在我的emulater(android 2.2)中運行它時填充微調器,但無法在我的便攜式設備(平板電腦和手機)上運行(運行android 2.2)。我收到一條通用的錯誤消息:「applilcation ...(app name)...意外停止,請重試。」不過,我注意到,在我的模擬器中,它的構建路徑被設置爲「Android 2.2」,但當我將其更改爲Google API(2.2平臺)時,它會運行得非常好,然後就會遇到它。我錯過了什麼?這裏正在使用的代碼填充微調控制:在Android谷歌API(2.2平臺)中運行時的問題

final DBAdapter db = new DBAdapter(this); 
    db.open(); 
    Cursor c = db.getAllStates(); 

    startManagingCursor(c);    
    String[] columns = new String[]{DBAdapter.KEY_STATE_NAME}; 
    int[] to = new int []{android.R.id.text1}; 

    SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, android.R.layout.simple_spinner_item, c, columns, to); 

    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 

    //get reference to the spinner... 
    Spinner s =(Spinner) findViewById(R.id.spinner_state); 
    s.setAdapter(adapter); 


    db.close(); 

這裏是我的代碼來獲取數據:

 public Cursor getAllStates() 
    {  
     Cursor c = null; 
        c = db.query(DATABASE_TABLE_STATE, new String[] { KEY_STATE_ID, KEY_STATE_NAME }, null, null, null, null, null); 


     //c = db.rawQuery("select * from tblStates", null); 

     return c; 
    } 

LocCat:

: INFO/Database(305): sqlite returned: error code = 1, msg = no such table: tblStates 
: DEBUG/AndroidRuntime(305): Shutting down VM 
: WARN/dalvikvm(305): threadid=1: thread exiting with uncaught exception (group=0x4001d800) 
: ERROR/AndroidRuntime(305): FATAL EXCEPTION: main 
: ERROR/AndroidRuntime(305): java.lang.RuntimeException: Unable to start activity ComponentInfo{king.chad.SDE/king.chad.SDE.BuildingAddressActivity} 
: android.database.sqlite.SQLiteException: no such table: tblStates: , while compiling: SELECT _id, stateName FROM tblStates 
: ERROR/AndroidRuntime(305):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663) 
+0

請問您可以向我們提供stackstrace(可以在Logcat中找到(在DDMS中)) –

+0

添加了locat錯誤消息,但是當運行相同的代碼並將build path設置爲Android時沒有任何意義2.2它的工作原理和將其更改爲Google API(2.2平臺)時不會... – cking24343

+0

好的,它所引用的數據庫是舊版本,缺少表格。我刪除了它,並將它添加回最新的一個,它適用於模擬器。但仍然無法使用我的設備。 – cking24343

回答

0

......經過一番搜索和頭髮拉我插入斷點所有我的代碼和調試地獄出來只發現目錄(當在設備上運行與模擬器)無法找到。因此它無法從數據庫讀取我預先填充的數據,這解釋了爲什麼數據未綁定到微調控件。所以在我的活動開始時,我檢查了目錄,如果它不存在,我創建它。問題已解決。如果其他人遇到同樣的問題,我可以隨意張貼,我會很樂意放棄我可以提供的一切,謝謝大家的建議!