2010-07-10 8 views
1

Réalisation du développement d'Android 2.1. Quelqu'un peut-il m'expliquer pourquoi le code suivant génère une IOException et ne charge pas le fichier? Ce code exact a l'habitude de fonctionner, et autant que je sache, il devrait encore fonctionner. Pour référence, la commande Log.d() répertorie correctement tous les fichiers attendus et les fichiers sont correctement compressés dans mon fichier .APK.Android AssetManager/InputStream Exception

 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()+ "'!"); 
      } 

Des idées sur les raisons pour lesquelles cela se brise maintenant? Les fichiers que j'essaie de lire sont des binaires minuscules (deux octets).

Répondre

2

Enfin compris. Erreur d'utilisateur flagrante, mais n'a pas pu voir la forêt pour les arbres. La commande list n'inclut pas le nom du répertoire, la commande open attend le chemin d'accès complet. Duh :) La commande open doit construire une chaîne qui inclut à la fois le nom du répertoire et le nom du fichier.

+0

Alors, marquez votre réponse comme correcte. – Cristian

1

vous pouvez peut-être utiliser comme cette

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()+ "'!"); 
    } 
Questions connexes