D/skia: --- 无法创建带有消息“未实现”的图像解码器

Posted

技术标签:

【中文标题】D/skia: --- 无法创建带有消息“未实现”的图像解码器【英文标题】:D/skia: --- Failed to create image decoder with message 'unimplemented' 【发布时间】:2020-05-21 00:38:15 【问题描述】:

我在我的项目中使用https://github.com/jhansireddy/androidScannerDemo这个扫描库。

当我捕获图像时,我在控制台中收到D/skia: --- Failed to create image decoder with message 'unimplemented',并且捕获的图像未设置为 Android P 中的 imageview。

当我在 Android Q 中测试相同的应用程序时,我也遇到了错误。

2020-02-05 11:32:23.668 9270-9270/? E/ReviewScreenImpl: onClickOKButton() - Fail to decode captured picture

有人可以帮忙解决上述问题吗?

【问题讨论】:

你是否在他们的 github 上为此创建了问题? 是的,我在 github 上创建了问题,但之前我也在那里创建了 2,3 个问题,但没有得到任何回应。 只是确保,在 github 上提出问题通常是个好主意 有什么解决办法吗? 使用新的活动结果 API 获取相机结果时出现此错误 【参考方案1】:

我也有同样的问题,getResources 中似乎有一个错误,不在您使用的库中,因为我不使用它。但是,您可以改用 ResourcesCompat,如下所示:

val myLogo = (ResourcesCompat.getDrawable(this.resources, R.drawable.ic_home_black_24dp, null) as VectorDrawable).toBitmap()

val myLogo = (ResourcesCompat.getDrawable(this.resources, R.drawable.ic_home_black_24dp, null) as BitmapDrawable).bitmap

取决于您的可绘制类型(矢量或图像)。

请注意,这只会在 API > 22 上运行。

【讨论】:

【参考方案2】:

请将图像字节字符串而不是简单的字符串传递到您的解码器 BitmapFactory.decodeStream 方法中。

【讨论】:

【参考方案3】:

确保您已生成图像 Uri,您将使用 Intent 使用 FileProvider 将其发送到相机应用程序。

相机应用将在返回Activity.RESULT_OK之前保存图片的图像uri应该像这样使用FileProvider生成

FileProvider.getUriForFile(
        context,
        context.getString(R.string.file_sharing_authority),
        File(filePath)

有关如何将我们的文件共享给其他应用程序(如相机应用程序)进行读取或写入的更多信息,请参阅https://developer.android.com/reference/androidx/core/content/FileProvider

【讨论】:

以上是关于D/skia: --- 无法创建带有消息“未实现”的图像解码器的主要内容,如果未能解决你的问题,请参考以下文章

是否有 Android Skia logcat 输出的文档? [关闭]

OpenCV 在带有 anaconda 的 Linux 上无法与 python 一起正常工作。收到未实现 cv2.imshow() 的错误

无法使用 Gtalk 应用程序的 asmack api 获取离线消息

GitStack无法创建新的存储库

由于 EndpointDispatcher 的 ContractFilter 不匹配,接收方无法处理带有 Action '' 的消息。

Laravel 5 - 带有消息“无法准备路由”的异常“LogicException”