Je rencontre un problème étrange lors de la lecture d'un introuvable em> sur la plate-forme Android. Je ne sais pas si c'est un problème spécifique Android, ou quelque chose que je fais mal en général. La seule chose qui est spécifique à Android est cet appel: p> java.io.IOException
at android.content.res.AssetManager.readAsset(Native Method)
at android.content.res.AssetManager.access$800(AssetManager.java:36)
at android.content.res.AssetManager$AssetInputStream.read(AssetManager.java:542)
4 Réponses :
Vous êtes correct, il existe une certaine taille de taille pour extraire des fichiers. Vous voudrez peut-être séparer des fichiers plus volumineux en pièces de 1 Mo et avoir une méthode à laquelle vous savez quels fichiers sont fabriqués à partir de quelles pièces, de les couchons à nouveau lorsque votre application s'exécute. P>
(mon poste à Android-développeurs ne s'affiche pas, alors je vais essayer de le republier ici) p>
IIRC, ce problème vient d'essayer d'accéder aux fichiers compressés dans le cadre de la construction de l'APK. P>
Par conséquent, pour contourner la question, donnez-lui une extension de fichier qui ne sera pas comprimée. J'oublie la liste des extensions ignorées, mais les types de fichiers connus pour être déjà compressés (par exemple, MP3, JPG) peuvent fonctionner. P>
Vous avez absolument raison. Renommer l'extension à .mp3 travaillé. C'est un bug idiot, et il devrait y avoir un moyen de le dire de ne pas compresser un certain fichier si cela va causer ce type de problème. Merci
@ Commonsware: Y a-t-il d'autres méthodes pour lire le fichier compressé de l'actif? Je veux dire que le fichier est compressé pendant l'emballage inapk, mais nous pouvons lire le fichier d'actifs?
Modification de l'extension de fichier sur .mp3 em> Pour éviter que la compression de fichier fonctionne, mais l'APK de l'application est beaucoup plus gros (dans mon cas 2,3 Mo au lieu de 0,99 Mo). P>
Y a-t-il un autre moyen d'éviter ce problème? P>
Voici ma réponse:
Charger des fichiers plus gros que 1M du dossier d'actifs P>
Vous pouvez compresser le fichier pour vous-même avec GZIP et le déballer avec une classe GzipInphatStream. p>
http://developer.android.com/reference/java/ util / zip / gzipinputtream.html p>
Utilisation de GZIP par votre indice J'ai implémenté un exemple de code ici
Un fichier de 1 Mo a fonctionné, mais un fichier de 1,5 Mo n'a pas fait. Y a-t-il une certaine restriction de taille pour les actifs ??