ARC矿石装载模型异常



正如你们中的许多人已经知道的,AR库目前的版本是1.17.1。由于Android studio导入插件已弃用,我很难在AR场景中导入和使用模型。

目前,我的原始文件夹中有2.gltf模型,我有以下代码试图在屏幕中显示模型:

ModelRenderable.builder()
.setSource(context.applicationContext, context.resources.getIdentifier(name, "raw", context.packageName))
.build()
.thenAccept {
renderable = it
}
.exceptionally {
print("Error : $it")
null
}

当我尝试添加模型时,我得到以下异常:

2020-12-01 17:34:27.012 24894-26864/com.inform.ar E/ModelRenderable: Unable to load Renderable registryId='android.resource://com.inform.ar/raw/armchair'
java.util.concurrent.CompletionException: java.lang.AssertionError: No RCB file at uri: android.resource://com.inform.ar/raw/armchair
at java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:278)
at java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:284)
at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1629)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:919)
Caused by: java.lang.AssertionError: No RCB file at uri: android.resource://com.inform.ar/raw/armchair
at com.google.ar.sceneform.rendering.LoadRenderableFromSfbTask.byteBufferToSfb(LoadRenderableFromSfbTask.java:191)
at com.google.ar.sceneform.rendering.LoadRenderableFromSfbTask.lambda$downloadAndProcessRenderable$0$LoadRenderableFromSfbTask(LoadRenderableFromSfbTask.java:121)
at com.google.ar.sceneform.rendering.-$$Lambda$LoadRenderableFromSfbTask$A8YYsoT3V_A--F80fBJ_ZLNSnhc.get(Unknown Source:4)
at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1627)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 
at java.lang.Thread.run(Thread.java:919) 

这个代码出了什么问题?没有更新的官方教程。所有的演示都无法正常工作,大多数教程都使用插件导入模型。你们中有人知道如何使这项工作成功吗?

obj格式的模型在较新版本的arcore中仍然可以很好地工作。如果你";具有2.gltf模型";只是,那么我认为转换数据会容易得多。obj格式自20世纪80年代以来就一直存在,而gltf格式是如此的新,它似乎正在经历成长的痛苦。。。

最新更新