加载Sceneform ARCore示例时仅显示灰黑条纹问题求助
针对Galaxy S9上Hello Sceneform相机灰黑条纹问题的解决方案
我之前处理过不少这类老设备的Sceneform适配问题,结合你提到的类似场景,给你整理几个经过验证的解决办法:
升级Sceneform版本并配置GL兼容项
Galaxy S9本身支持OpenGL ES 3.2,但早期Sceneform版本对这类设备的渲染适配存在bug。建议将Sceneform版本升级到1.17.1(官方最后一个稳定正式版),同时在模块的build.gradle中补充以下配置,确保渲染环境兼容:android { defaultConfig { renderscriptTargetApi 28 renderscriptSupportModeEnabled true minSdkVersion 24 } }调整相机渲染的Surface参数
相机预览的Surface格式与Sceneform渲染格式不匹配是这类条纹问题的常见诱因。你可以在MainActivity中对ArFragment的渲染参数做针对性调整:@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ArFragment arFragment = (ArFragment) getSupportFragmentManager().findFragmentById(R.id.ar_fragment); // 修正相机流的渲染时间偏移 arFragment.getArSceneView().getCameraStreamRenderTarget().setPresentationTimeOffset(0); // 若不需要深度功能,可临时禁用深度纹理排查 arFragment.getArSceneView().setDepthTextureEnabled(false); }检查AR Core服务与权限
确保你的Galaxy S9已经安装了最新版本的AR Core服务(可以通过Google Play商店更新),同时应用已正常获取CAMERA权限。另外,建议将设备系统升级到Android 10及以上,旧系统版本可能存在底层渲染适配问题。临时禁用硬件加速排查问题
如果上面的方法都没效果,可以尝试在AndroidManifest.xml中给主Activity禁用硬件加速,排查是否是设备硬件渲染的兼容性问题:<activity android:name=".MainActivity" android:hardwareAccelerated="false">若禁用后恢复正常,说明是硬件渲染层面的适配问题,优先推荐使用升级Sceneform版本的方案解决。
另外,你提到需要同步给Sean Krist,这些方案已经整理好,方便你直接转发给他参考。
内容的提问来源于stack exchange,提问作者BetaMax
相关产品推荐
相关产品推荐

