sqlite работает на симуляторах, но не на устройстве - PullRequest
1 голос
/ 18 марта 2011

Мое приложение устанавливает некоторые соединения с базой данных (sqllite) и выполняет некоторые базовые операции с базами данных (вставка, удаление, поиск), я написал для этого код, оно отлично работает в симуляторе, но не в телефоне, может ли кто-нибудь помочь преодолеть это,Заранее спасибо. Я использовал следующий код для вставки данных, я уже добавил код для создания базы данных и таблиц.И я создаю папку SDCard в папке моего приложения,

public void insertInTotblFavStationList(String url,String StationName,String imageUrl,String bitRate,String formats){
        try {
            URI uri = URI.create("file:///SDCard/Databases/myDb.db");
            Statement statement =null;
            Database grabDB = null;
            grabDB = DatabaseFactory.open(uri);
            statement = grabDB.createStatement("insert into tblFavStationList(url,StationName,StationImage,Bitrate,Formats) values (?,?,?,?,?)");
            statement.prepare();
            statement.bind(1, url);
            statement.bind(2, StationName);
            statement.bind(3, imageUrl);
            statement.bind(4, bitRate);
            statement.bind(5, formats);         
            statement.execute();
            statement.close();
            grabDB.close();
            System.out.println("ins");

        } catch (Exception e) {
            System.out.println(e);
        }

    }

Ответы [ 2 ]

2 голосов
/ 25 марта 2011

Я обнаружил, что когда мой BB подключен к моему Macbook, ДАЖЕ ЕСЛИ USB-общий доступ к файлам выключен, SDCard, похоже, смонтирован.Это означает, что любые хранящиеся там файлы базы данных недоступны и выдают «Неверное имя пути».

Проверьте, смонтирована ли ваша SDCard, перейдя в приложение камеры, если это так, то вы получите предупреждение о том, что вы можетене сохраняйте фотографии.

Попробуйте загрузить приложение и затем отключить USB.Это боль, потому что это означает, что вы не можете правильно отлаживать.

0 голосов
/ 18 марта 2011

SQLLite работает только с версиями ежевики 5 и выше.Какую модель телефона вы используете?это может быть вашей проблемой.Также не могли бы вы опубликовать ошибку, которую выдает ваш телефон?

Я также мог быть связан с подписанием кода.SQLite требует, чтобы вы подписали код приложения. Это не обязательно для симулятора, но для вашего телефона.Это из-за API, который он использует для работы. Кодовый знак

...