2011-10-04 9 views
1

私のアンドロイドのアプリ私はjarから.dbファイルを抽出する独自のJavaライブラリを使用しています。 Javaデスクトップではうまくいきますが、アンドロイドでそれをやろうとすると、入力ストリームは永遠にブロックされます。コピー方法は次のようになります。私は外部ファイルのディレクトリにこのファイルをコピーしたいとandroid.permission.WRITE_EXTERNAL_STORAGEが付与され.apkからファイルを抽出しますか?

InputStream in = classloader.getResourceAsStream(...); 
OutputStream out = new FileOutputStream(new File(...)); 
try { 
    while ((read = in.read()) != -1) { 
    out.write(read); 
    } 
} finally { 
    try { 
    in.close(); 
    } catch (final Exception e) { 
    LOGGER.debug("Error", e); 
    } 

    try { 
    out.close(); 
    } catch (final Exception e) { 
    LOGGER.debug("Error", e); 
    } 
} 

/data/app/...apkにファイルにアクセスする方法はありますか?そうでない場合は、永遠にブロックせずにアクセスできないことをどのように検出できますか?たぶん、あなたは生のフォルダにデータを保存する必要があり

+0

充実したデータベースを使ってアプリを出荷することはできますか? –

+0

はい、アプリには塗りつぶしたデータベースが含まれている必要があります。最初にデータベースを抽出して更新する必要があります。 – Stephan

答えて

2

データベースファイルを/assets -folderに置き、最初に実行したときに/databases -folderにコピーする必要があります。このチュートリアルはhereです。

ただし、テーブルとサンプルエントリを作成する場合は、のonCreate()メソッドを使用します。

+0

私はそれを試みます。しかし、私は外部ストレージにファイルをコピーしたい。 – Stephan

+0

これも可能です(「外部記憶装置を書き込む」許可がある場合)。 –

0

:我々は唯一の私たちが持っているAPKからクラスファイルを抽出することができ、私たちはlayout/xmlファイルやその他のファイルを取得しません。

apkからクラスファイルを抽出できる方法があります。

関連する問題