Android 常见问题之Assets文件大小限制
2014-08-20 17:03
363 查看
在Android 2.3以前的任何压缩的资源的原始大小超过1M将不能从APK中读出,如果你使用AssetManager 或 Resources classes方法来获取InputStream,将抛出java.io.IOException的异常如下 DEBUG/asset(1123): Data exceeds
Android Asset Packaging Tool(aapt)使用这个工具可打包所有数据 Image XML文件 任何资源文件.在生成APK时aapt选择性的压缩各种资源来节省设备空间,aapt使用后缀来决定哪个资源需要压缩,aapt源码定义一些不需要压缩的文件后缀。附aapt源码Package.cpp
在Android 2.3以前的任何压缩的资源的原始大小超过1M将不能从APK中读出,如果你使用AssetManager 或 Resources classes方法来获取InputStream,将抛出java.io.IOException的异常如下 DEBUG/asset(1123): Data exceeds UNCOMPRESS_DATA_MAX (20078432 vs 1048576);
可以看到如果需要打包数据库的童鞋文件过大就需要注意了。
解决方法如下:
1.将你的资源文件后缀改成上面列出的后缀。
2.在命令行上使用-0参数来指定不需要压缩的文件后缀。当你使用Eclipse内的ADT目前还不知道有什么方法可以传递-0参数给aapt。
3.将你的资源文件分割成UNCOMPRESS_DATA_MAX(1M)以下的文件.
Android Asset Packaging Tool(aapt)使用这个工具可打包所有数据 Image XML文件 任何资源文件.在生成APK时aapt选择性的压缩各种资源来节省设备空间,aapt使用后缀来决定哪个资源需要压缩,aapt源码定义一些不需要压缩的文件后缀。附aapt源码Package.cpp
以下是代码片段: view plainprint? /* these formats are already compressed, or don't compress well */ static const char* kNoCompressExt[] = { ".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" }; |
可以看到如果需要打包数据库的童鞋文件过大就需要注意了。
解决方法如下:
1.将你的资源文件后缀改成上面列出的后缀。
2.在命令行上使用-0参数来指定不需要压缩的文件后缀。当你使用Eclipse内的ADT目前还不知道有什么方法可以传递-0参数给aapt。
3.将你的资源文件分割成UNCOMPRESS_DATA_MAX(1M)以下的文件.
相关文章推荐
- Android 常见问题之Assets文件大小限制
- Android 常见问题之Assets文件大小限制
- Android问题之res/raw和assets文件大小限制
- Android问题之res/raw和assets的区别及文件大小限制
- android常见问题之jni读取assets资源文件(附源码)
- (转)android常见问题之jni读取assets资源文件(附源码)
- android常见问题之jni读取assets资源文件
- Android 常见问题之Assets文件大小限制
- Android Assets文件大小限制
- android常见问题之jni读取assets资源文件
- android开发下载的文件大小始终大于服务器的文件的大小问题解决
- Struts2文件上传的大小限制问题
- 解决jspsmartupload上传文件时大小受限制问题
- 上传文件细节处理问题(包括中文乱码、限制文件大小、显示上传速度、删除临时文件,随机生成文件夹等)
- php上传文件大小限制问题的解决
- win2003上传文件大小限制问题
- android读取assets下的文件及大小
- LNMP一键安装包PHP和Niginx 文件上传大小限制问题解决方法
- .net附件文件上传大小限制的问题
- 文件上传时使用拦截器限制文件大小类型无效的问题