Проблема при запуске в Android API Google (платформа 2.2) - PullRequest
0 голосов
/ 25 сентября 2011

плохо знаком с разработкой для Android, будь нежным, ха-ха. Я хочу заполнить счетчик данными из моей базы данных SQLite. У меня есть таблица, которая предварительно заполнена, и я могу успешно запросить ее. Проблема в том, что я могу заполнить счетчик при запуске его в моем эмуляторе (Android 2.2), но не могу запустить его на моих портативных устройствах (планшет и телефон) (работает Android 2.2). Я получаю общее сообщение об ошибке, в котором говорится: «applilcation ... (имя приложения) ... неожиданно остановился. Пожалуйста, повторите попытку». Однако я заметил, что в моем эмуляторе он прекрасно работает, когда путь сборки установлен на «Android 2.2», и все же, когда я изменяю его на Google 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)

1 Ответ

0 голосов
/ 06 ноября 2011

... после долгих поисков и выдергивания волос я вставил точки останова по всему своему коду и отладил его до чертиков, только чтобы обнаружить, что каталог (при работе на устройстве против эмулятора) не может быть найден. Поэтому он не мог прочитать из базы данных, которую я предварительно заполнил, что объясняет, почему данные не привязывались к элементу управления счетчика. Поэтому в начале своей деятельности я проверил каталог и, если он не существует, я создал его. Проблема решена. Если у кого-то возникла такая же проблема, как и у меня, не стесняйтесь писать, и я буду рад пролить свет, который могу, спасибо всем за ваши предложения!

...