1

こんにちは、ブラックベリーの開発は初めてです。

sqlite の小さなデモ アプリを作成しようとしています。そのために私は次のコードを書いています:

    try
    {
        URI myURI = URI.create("file:///SDCard/Databases/myDb.db"); 
        d = DatabaseFactory.openOrCreate(myURI);
        d.close();
        add(new RichTextField("DB created successfully"));
    }
    catch ( Exception e ) 
    {         
        System.out.println( e.getMessage() );
        e.printStackTrace();
        add(new RichTextField("Error: "+e.toString()));
    }

これを実行すると、このような例外が発生します

net.rim.device.api.database.DatabasePathException: パス名が無効です。パスに適切なルート リストが含まれていません。詳細については、FileSystemRegistry クラスを参照してください。

シミュレーターでSDカードを設定しました:シミュレート-> SDカードの変更->ディレクトリの追加(E:\ mediacard)

4

1 に答える 1

3

SDCard の設定が完了したら、Simulator のファイル ブラウザから SDCard を見つけて、正しくインストールされているかどうかを確認します。

SQLite データベースを操作する際のベスト プラクティスについては、http://docs.blackberry.comで提供されている SQLite サンプル アプリケーションを確認してください。BlackBerry Plugins For Eclipse を使用している場合は、SQLiteDemo アプリケーションをインポートしてコードを確認できます。次のコード行は、SQLiteDemo クラスのコンストラクターからのものです。

// Determine if an SDCard is present 
boolean sdCardPresent = false;
String root = null;
Enumeration e = FileSystemRegistry.listRoots();
while (e.hasMoreElements()) {
    root = (String)e.nextElement();
    if(root.equalsIgnoreCase("sdcard/")) {
        sdCardPresent = true;
    }     
}            
if(!sdCardPresent) {
    // no database can't be created
}          
else {
    // create database
}
于 2013-05-17T10:29:56.677 に答える