1

Android2.1の開発を行っています。次のコードがIOExceptionを生成し、ファイルをロードしない理由を誰かが私に説明できますか?この正確なコードは以前は機能していましたが、私が知る限り、まだ機能するはずです。参考までに、Log.d()コマンドは、私が期待するすべてのファイルを正しくリストし、ファイルは私の.APKファイルに正しくzip形式で圧縮されています。

        AssetManager assetManager = mContext.getAssets();
        String[] files = null;
        try
            {
            files = assetManager.list("meshes");
            for (int i = 0; i < files.length; i++)
                Log.d(TAG, files[i]);
            InputStream is = assetManager.open(files[0]);
            }
        catch (IOException e) 
            {
            Log.e(TAG, "Could not load '" + e.getMessage()+ "'!");
            }

これが今壊れている理由について何かアイデアはありますか?私が読み込もうとしているファイルは、小さな(数バイトの)バイナリです。

4

2 に答える 2

2

ついにそれを理解した。露骨なユーザーエラーですが、木の森を見ることができませんでした。listコマンドにはディレクトリ名が含まれていません。openコマンドにはフルパス名が必要です。Duh :) openコマンドは、ディレクトリ名とファイル名の両方を含む文字列を作成する必要があります。

于 2010-07-12T00:50:29.043 に答える
1

多分あなたはこのように使うことができます

    AssetManager assetManager = this.getAssets();
    try{
            InputStream is = assetManager.open("tes.png");

            Log.d("Success", "Read");
    }catch (IOException e){
            Log.e("Failed", "Could not load '" + e.getMessage()+ "'!");
    }
于 2012-02-19T15:09:38.400 に答える