ArCore .obj FileNotFound исключение - PullRequest
0 голосов
/ 05 июня 2019

Я делаю приложение ArCore, и когда я строю свой ModelRenderable, я получаю это исключение:

java.util.concurrent.CompletionException: java.io.FileNotFoundException: Coffee Cup_final.obj (No such file or directory)
        at com.google.ar.sceneform.utilities.SceneformBufferUtils.inputStreamToByteBuffer(SourceFile:49)
        at com.google.ar.sceneform.rendering.LoadRenderableFromSfbTask.lambda$downloadAndProcessRenderable$0$LoadRenderableFromSfbTask(LoadRenderableFromSfbTask.java:119)
        at com.google.ar.sceneform.rendering.-$$Lambda$LoadRenderableFromSfbTask$0DkaOpfpmr8DYlbaxWogZtUpKTw.get(Unknown Source:4)
        at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1625)
        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:764)
     Caused by: java.io.FileNotFoundException: Coffee Cup_final.obj (No such file or directory)
        at java.io.FileInputStream.open0(Native Method) 

Но я вижу, что этот файл существует.Вот рендеринг, за которым следует сборка сборки.

ModelRenderable.builder()
                .setSource(this, Uri.parse("Coffee Cup_final.obj.obj"))
                .build()
                .thenAccept(this::onRenderableLoaded)
                .exceptionally(throwable -> {
                    Log.i("Sceneform", "failed to load model");
                    return null;
                });

sceneform.asset('sampledata/Coffee Cup_final.obj.obj',
            'default',
            'sampledata/Coffee Cup_final.obj.sfa',
            'src/main/assets/Coffee Cup_final.obj')

enter image description here

Имеет ли это отношение к именованию моего трехмерного объекта в верхнем регистре?

1 Ответ

0 голосов
/ 05 июня 2019

Этап sceneform.asset () в build.gradle преобразует файл OBJ во внутренний формат SFB-файла Sceneform.Таким образом, файл, который создается и копируется в вашу папку ресурсов, называется src / main / assets / Coffee Cup_final.obj.sfb.Так что если вы измените

ModelRenderable.builder().setSource(this, Uri.parse("Coffee Cup_final.obj.obj"))

на

ModelRenderable.builder().setSource(this, Uri.parse("Coffee Cup_final.obj.sfb"))

, это должно работать.

...