sqlite适用于模拟器,但不适用于设备

时间:2011-03-18 15:53:28

标签: sqlite blackberry blackberry-simulator blackberry-jde

我的应用程序进行了一些数据库连接(sqllite)并执行了一些基本的数据库操作(插入,删除,搜索),我为此编写了一些代码,它在模拟器中完美运行但在手机中没有用,任何人都可以帮助克服这个问题,在此先感谢。我使用以下代码插入数据,我已经添加了代码来创建数据库和表。 我在应用程序的文件夹中创建了Folder 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 个答案:

答案 0 :(得分:2)

我发现当我的BB连接到我的Macbook甚至USB文件共享关闭时,SDCard似乎已经安装。这意味着存储在那里的任何数据库文件都是不可访问的,并且会抛出“无效的路径名”。

通过访问相机应用程序检查您的SD卡是否已安装,如果是,它会发出警告,提示您无法保存照片。

尝试加载您的应用,然后断开USB连接。这很痛苦,因为这意味着你无法正常调试。

答案 1 :(得分:0)

SQLLite仅适用于黑莓5及以上版本。您使用的手机型号是什么?这可能是你的问题。你也可以发布手机丢失的错误吗?

我也可能与代码签名有关。 SQLite要求您对应用程序进行代码签名模拟器不需要它,但它适用于您的手机。这是因为它用于操作的API。 Code Sign