Samsung Galaxy S9+ 渲染脚本错误

Samsung Galaxy S9+ renderscript error

我正在使用 Camera2 API 并且我正在使用 Renderscript 执行一些图像处理。除 S9+ 外,在一系列设备(Nexus 5/5x、Pixel、Pixel 2、S8+、Note 8)上一切正常。

基本上我正在做的是创建一个 Allocation 来接收相机数据,另一个 Allocation 将使用相机数据,应用转换并将结果显示在 Surface 这将作为相机预览。 在 S9+ 上出现黑屏(无预览)并且 LogCat 显示以下错误:

我阅读了有关此类错误的其他帖子,它们不适用于我的情况,因为该代码在其他设备上按预期工作!

我设法将错误追踪到本机库加载问题:

这只发生在 S9 上,其他三星设备可以正常工作。

S8+ 在 Android Nougat(24) 上,S9+ 在 Oreo(26) 上,两者都有 OpenGL ES 3.2。

有人知道如何解决这个问题吗?

PS: 在其他设备上测试 运行 Oreo 没有任何问题

编辑

我将 S9+ 更新到最新版本 (R16NW.G965FXXU1ARCC),但问题仍然存在。 另外,根据评论建议,我检查了 /vendor/lib64 文件夹以检查 libbccArmlibccc 是否存在,但只有一个是目前:

稍后编辑

libbcc.so在系统上找到但是S9+好像少了32位版本(左边是S8+,右边是S9+)

我在同一个phone上遇到了同样的问题。

使用改编自 https://android.googlesource.com/platform/frameworks/base/+/dd6c8b3/tests/RenderScriptTests/LivePreview/src/com/android/rs/livepreview/ 的代码进行测试, 看起来渲染脚本在 S9+ 上适用于较低的分辨率(测试了 176x144 和 256x144),但除此之外就没有了。可能是由于作为后备加载的非 GPU 渲染脚本驱动程序的限制。对于我们大多数人来说,这不是一个很好的解决方案,但至少你可以在屏幕上看到一些东西。

最新更新修复了渲染脚本问题(我现在可以处理 1920x1080 图像)。

在 Galaxy S9+ 上测试,版本号 R16NW.G965FXXU1BRE5