2

私はAndroid開発に不慣れです。今私はsqliteデータベースを使用しようとしています。sqlitemanagerを使用してデータベースsqliteファイルを作成しました。/ data / data / packagename / dbnameでプロジェクトにインポートしましたが、エミュレーターでは正常に動作しますが、デバイスでリリースするとアプリがクラッシュし、何が発生し、なぜ発生するのかわかりませんでした。それについて何か提案はありますか?

4

4 に答える 4

4

そのように外部DBを使用することはできません。プロジェクトにインポートしても、その後すべてのデバイスで使用できるわけではありません(これにDDMSを使用したと仮定します)。これは、DBがその特定のエミュレーターでのみ使用可能であることを意味します。以下のリンクをたどって、アプリケーションに外部DBを追加する方法を確認してください。

http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/

于 2012-05-23T12:06:59.937 に答える
3
private void StoreDatabase() {
     File DbFile=new File("data/data/packagename/DBName.sqlite");
     if(DbFile.exists())
     {
         System.out.println("file already exist ,No need to Create");
     }
     else
     {
         try 
         {
             DbFile.createNewFile();
             System.out.println("File Created successfully");
             InputStream is = this.getAssets().open("DBName.sqlite");
             FileOutputStream fos = new FileOutputStream(DbFile);
             byte[] buffer = new byte[1024];
                int length=0;
                while ((length = is.read(buffer))>0)
                {
                fos.write(buffer, 0, length);
                }
             System.out.println("File succesfully placed on sdcard");
                //Close the streams
                fos.flush();
                fos.close();
                is.close();
         }
         catch (IOException e)
         {
             e.printStackTrace();
         }
   }    
    }
于 2012-05-23T12:19:36.093 に答える
2

このリンクを表示します。これは、Androidで独自のデータベースを使用している場合に非常に役立ちます。

http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/

このチュートリアルでは、データベースをプロジェクトのアセットフォルダーに配置する必要があります。そうすると、データベースはデバイスのデータベースフォルダーに自動的に転送されます。

于 2012-05-23T12:10:22.560 に答える
2

これを処理するヘルパーライブラリについては、https://github.com/jgilfelt/android-sqlite-asset-helperを参照してください。

(私はこのライブラリを個人的に使用したことはありませんが、昨日何か他のものを探しているときに見つけました。しかし、それはあなたが必要とすることをしているようです)。

于 2012-05-23T12:18:58.017 に答える