新的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)
請問您可以向我們提供stackstrace(可以在Logcat中找到(在DDMS中)) –
添加了locat錯誤消息,但是當運行相同的代碼並將build path設置爲Android時沒有任何意義2.2它的工作原理和將其更改爲Google API(2.2平臺)時不會... – cking24343
好的,它所引用的數據庫是舊版本,缺少表格。我刪除了它,並將它添加回最新的一個,它適用於模擬器。但仍然無法使用我的設備。 – cking24343