0

作成中の Android アプリのファイルを開こうとしています。このファイルを開くコードを通常の Java プロジェクトでテストしたところ、正常に開きました。ただし、Android Java プロジェクトでこのコードを使用すると、java.io.FileNotFoundException エラーが発生します。

File file = new File ("list.plist");

これで、list.plist ファイルはプロジェクトの親ディレクトリにあります。このファイルは、アプリが使用する唯一のファイルとしてアプリに含まれます。

プロジェクト内のどこにでもファイルを配置でき、問題なくアクセスできる Xcode に慣れていると思います。

このパスをどのように構成すればよいですか?

ありがとう :-)

私はこれを使用しましたが、これも機能しませんでした。

File file = new File(context.getFilesDir().getAbsoluteFile(), "list.plist");

4

4 に答える 4

0

このファイルは、親フォルダーではなく、アセットディレクトリに配置する必要があります。親フォルダー内のファイルは、アプリにパッケージ化する必要はありません。さらに、電話でのファイルの構造は、日食で見られるものと同じではありません。

于 2012-07-24T02:06:09.193 に答える
0

Androidプロジェクトにrawファイルを含めるには、「res/raw」または「assets」ディレクトリを使用する必要があります。参照:http ://developer.android.com/guide/topics/data/data-storage.html

于 2012-07-24T02:06:10.290 に答える
0

まず、使用しているファイルがアプリ内 (assets ディレクトリなど) にパッケージ化されていることを確認する必要があります。

次に、Android は拡張子に基づいて plist ファイルを自動的に圧縮します。回避策として、拡張子を Android が圧縮しないものに変更します。これらの拡張には以下が含まれます。

".jpg", ".jpeg", ".png", ".gif",
".wav", ".mp2", ".mp3", ".ogg", ".aac",
".mpg", ".mpeg", ".mid", ".midi", ".smf", ".jet",
".rtttl", ".imy", ".xmf", ".mp4", ".m4a",
".m4v", ".3gp", ".3gpp", ".3g2", ".3gpp2",
".amr", ".awb", ".wma", ".wmv"

(完全な記事については、deal-with-asset-compression-in-android-apps を参照してください)

于 2012-07-24T02:57:41.777 に答える
0

list.plist を assets フォルダーに追加し、圧縮の問題を回避するために list.mp3 という名前に変更しました。

AssetManager assetManager = getAssets();
InputStream inputStream = assetManager.open("list.mp3");

これにより、問題なくファイルが正常に開かれたため、inputStream を解析できるようになりました。

正しい方向に私を送ってくれた Phil に感謝します。

于 2012-07-24T16:36:56.113 に答える