gpt4 book ai didi

android - Drawable.createFromResourceStream() 中的异常——仅限 HTC?

转载 作者:太空宇宙 更新时间:2023-11-03 13:03:46 25 4
gpt4 key购买 nike

我发布了一个 IME(软键盘)应用程序,但我收到了来自 HTC 手机 的崩溃报告。这是堆栈跟踪:

java.lang.NullPointerException
at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:465)
at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:697)
at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:666)
at com.comet.android.keyboard.util.Util.getBitmapDrawable(MyFile.java:416)
...

这是我对 Drawable.createFromResourceStream() 的调用

drawable = Drawable.createFromResourceStream(context.getResources(), null, stream, null);

contextInputMethodService 的子类,streamFileInputStreamAssetInputStream(我都试过了)。资源文件是已编译的 NinePatchDrawable。我已确认流不为空。

重复一遍:此错误仅发生在某些运行不同版本 Android 操作系统的 HTC 手机(包括 Evo)上。

有没有人遇到过这种情况和/或知道如何解决它?

提前致谢

巴里

附言奇怪的是,崩溃行 465 不在任何版本的 BitmapFactory.java 的崩溃方法 BitmapFactory.decodeResourceStream() 中,因此 HTC 必须使用修改后的代码。

最佳答案

找到了这个问题的解决方案,您可以将对 Drawable.createFromResourceStream 的调用替换为:

// set options to resize the image
Options opts = new BitmapFactory.Options();
opts.inDensity = 160;

Drawable drawable = null;
Bitmap bm = BitmapFactory.decodeFile(file.getAbsolutePath(), opts);
if (bm != null) {
drawable = new BitmapDrawable(context.getResources(), bm);
}

这只适用于文件。

关于android - Drawable.createFromResourceStream() 中的异常——仅限 HTC?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7747089/

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