Android 常见问题之Assets文件大小限制
来源:互联网 发布:淘宝客采集工具 编辑:程序博客网 时间:2024/06/06 20:58
在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
以下是代码片段:
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"
}; 在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)以下的文件.
0 0
- Android 常见问题之Assets文件大小限制
- Android 常见问题之Assets文件大小限制
- Android 常见问题之Assets文件大小限制
- Android常见问题--Assets文件大小限制
- Android Assets文件大小限制
- Android问题之res/raw和assets文件大小限制
- Android问题之res/raw和assets文件大小限制
- Android问题之res/raw和assets文件大小限制
- Android问题之res/raw和assets的区别及文件大小限制
- android常见问题之jni读取assets资源文件(附源码)
- android常见问题之jni读取assets资源文件
- Assets目录下的文件大小是否有限制?
- Android之assets资源
- Android studio 之 assets
- 文件大小限制
- Android开发之assets目录
- Web.Config文件配置之限制上传文件大小和时间
- Nginx之——413 修改上传文件大小限制
- vb.net版机房收费系统重构
- IOS7 UIViewController中使用UIRefreshControl 实现 UITableView下拉刷新
- “separate compilation” & “Linkage”
- 如何书写高质量的jQuery代码
- WIN通过进程树,批量杀死进程
- Android 常见问题之Assets文件大小限制
- MATLAB 声音文件分析、处理。
- js书籍
- NSError详解
- .NET Request.Params与Request.QueryString等的区别
- 工作日志2014-08-20
- 寻找第k个最大数
- 消息队列工作机制 msgsnd: Invalid argument
- 人生的道路向前,历经那么多坎坷和尴尬,就算对人生的一种珍惜,也应该尝试着去幸福