首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >java.io.FileNotFoundException:此文件无法作为文件描述符打开;它可能已压缩

java.io.FileNotFoundException:此文件无法作为文件描述符打开;它可能已压缩
EN

Stack Overflow用户
提问于 2011-05-31 19:27:41
回答 13查看 50.3K关注 0票数 54

我正在编程一个声板从安卓。问题是有些声音是有效的,而有些则不起作用。下面是我对不起作用的声音的回溯

代码语言:javascript
复制
05-31 13:23:04.227 18440 18603 W System.err: java.io.FileNotFoundException: This file can not be opened as a file descriptor; it is probably compressed
05-31 13:23:04.227 18440 18603 W System.err:    at android.content.res.AssetManager.openAssetFd(Native Method)
05-31 13:23:04.227 18440 18603 W System.err:    at android.content.res.AssetManager.openFd(AssetManager.java:331)
05-31 13:23:04.227 18440 18603 W System.err:    at com.phonegap.AudioPlayer.startPlaying(AudioPlayer.java:201)
05-31 13:23:04.227 18440 18603 W System.err:    at com.phonegap.AudioHandler.startPlayingAudio(AudioHandler.java:181)
05-31 13:23:04.235 18440 18603 W System.err:    at com.phonegap.AudioHandler.execute(AudioHandler.java:64)
05-31 13:23:04.235 18440 18603 W System.err:    at com.phonegap.api.PluginManager$1.run(PluginManager.java:86)
05-31 13:23:04.235 18440 18603 W System.err:    at java.lang.Thread.run(Thread.java:1096)

有什么想法吗?

EN

回答 13

Stack Overflow用户

回答已采纳

发布于 2011-05-31 19:48:56

在assets文件夹中打开压缩文件有一定的限制。这是因为未压缩的文件可以直接将内存映射到进程的虚拟地址空间中,从而避免再次需要相同数量的内存进行解压缩。

Dealing with Asset Compression in Android Apps讨论了一些处理压缩文件的技术。您可以使用未压缩的扩展名(例如mp3)诱使aapt不压缩文件,也可以手动将它们添加到不压缩的apk中,而不是让aapt来完成此工作。

票数 43
EN

Stack Overflow用户

发布于 2015-10-27 11:50:09

您可以禁用某些扩展的资产压缩,如下所示:

代码语言:javascript
复制
android {
    aaptOptions {
        noCompress "pdf"
    }
}

Source

票数 110
EN

Stack Overflow用户

发布于 2019-07-29 15:57:38

使用Tensorflow Lite文件的人遇到了这个问题,

将以下行添加到android{}块内的Gradle文件(android/app/build.gradle)中。

代码语言:javascript
复制
aaptOptions {
    noCompress "tflite"
}
票数 48
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6186866

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档