gpt4 book ai didi

java - 升级装配条件后,getStartOffset 返回 Assets 文件夹中文件的错误值

转载 作者:行者123 更新时间:2023-12-01 08:59:00 26 4
gpt4 key购买 nike

升级汇编条件后,getStartOffset() 方法无法正常工作。

以下代码 fragment 可以很好地使用api 19构建应用程序(Android插件1.5.0 + Gradle版本2.2.1>),但是当我尝试对 api 25 和其他构建条件(Android 插件 2.2.0 + Gradle 版本 2.14 .1),getStartOffset() 返回的值大于文件长度。返回的长度为true。事实上,读取的“png”文件不是图像,我根据aapt的要求给它扩展名为PNG。

AssetFileDescriptor in = null;
FileInputStream fin = null;
FileChannel channel = null;
try {
in = context.getAssets().openFd(file); // .png
fin = in.createInputStream();
channel = fin.getChannel();
int length = (int) in.getLength(); // channel.size();
int offSet = (int) in.getStartOffset();
MappedByteBuffer buffer = channel.map(FileChannel.MapMode.READ_ONLY,
0, length + offSet);
...
...
}

有什么问题吗?谢谢

最佳答案

这是正常行为。我必须在哈希编辑器中查看 APK 文件 的内容。令我惊讶的是,我的 PNG 文件出现在 APK 文件 中两次:它的第一个条目距开头的偏移量为 52 字节,在第二种情况下,startOffset 超过 2MB。 IE。 StartOffsetapk 包中的偏移。

兴奋是徒劳的。一切正常:

MappedByteBuffer buffer = channel.map(FileChannel.MapMode.READ_ONLY, offSet,   length);
int spos = 0;
while(spos < length) {
......
}

关于java - 升级装配条件后,getStartOffset 返回 Assets 文件夹中文件的错误值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41835804/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com