无法获取资产的文件描述符

时间:2011-04-06 13:04:59

标签: android

我需要为dae文件获取文件描述符,因此我可以获得Start Offset和Length。我有png文件的文件描述符,工作正常。我是通过使用此代码完成的。

int id = 0;
id = getResources().getIdentifier("duck", "drawable", getPackageName());
mAssetDescriptor = getResources().openRawResourceFd(id);

就像我说的那样,对于我的png,这个工作正常,但对于我的dae来说,这不起作用,我得到以下例外:

  

android.content.res.Resources $ NotFoundException:   文件res / drawable / duck.dae来自   可绘制资源ID#0x7f020030

mAssetDescriptor为空。

所以我试着做另一种方式。我把我的dae文件放在资产文件夹

mAssetDescriptor = getAssets().openFd("duck.dae");

这就出现了错误

  

此文件无法作为文件打开   描述;它可能已被压缩。

我想知道的是,如何在不使用getFileDescriptor()和getStartOffset()函数的情况下获取文件的Start Offset和Length,因为我似乎无法使用它们。

我想dae文件都在1mb以下也没什么值得的,我正试图以500k的速度加载duck.dae。

非常感谢您的帮助

汤姆

1 个答案:

答案 0 :(得分:3)

这可能适用于png,因为它们不会被额外压缩,而大多数其他文件都是。请参阅此主题:http://groups.google.com/group/android-ndk/browse_thread/thread/8274a4c51cc9cc1d

尝试添加和扩展您的文件,以防止文件被压缩。