Импорт моделей с использованием плагина Sceneform в студии Android, но при создании sfa появляется ошибка

Я пробую новый SDK Sceneform от Google для AR.

Он говорит об использовании плагина Google Sceneform Tools для импорта ресурсов. Итак, я выполняю все шаги, упомянутые здесь, чтобы импортировать мои ресурсы.

При импорте любой 3D-модели (в формате .obj или .fbx) каждый раз, когда я получаю эту ошибку - ошибка создания sfa без каких-либо других сведений об ошибке, а затем дает возможность отменить процесс актива импорт.

Я использую Android Studio 3.1.2, и я использую ОС Linux (Ubuntu 18.04).

Я проверял шаги снова и снова, но все выглядит нормально. Кто-нибудь еще сталкивается с этой же проблемой?


person Asutosh Panda    schedule 13.05.2018    source источник
comment
Привет, @Asutosh, не могли бы вы помочь мне с этой проблемой stackoverflow.com/questions/63900439/ Я застрял на этом с последнего месяца, пожалуйста, дайте мне знать, если вы можете помочь   -  person Abhishek    schedule 24.09.2020


Ответы (8)


Мне помогло это решение на github:

Ссылка

1. щелкните правой кнопкой мыши 3D-ресурс и выберите «Импортировать объект Sceneform».

2. нажмите «Готово»

3. нажмите "сохранить сломанные изменения градиента"

4. в «файлы gradle были изменены ...» нажмите «синхронизировать сейчас» - синхронизация прошла успешно, файл .sfa создан в папке sampledata, а файл .sfb создан в папке с ресурсами.

person Koorosh    schedule 14.05.2018
comment
Спасибо за попытку. До шага 3 все в порядке. Даже после выполнения шага 4 градиент синхронизируется без ошибок. Но когда я запускаю приложение, оно снова дает мне - «Ошибка при создании sfa». - person Asutosh Panda; 14.05.2018
comment
Так что проблема все еще существует. - person Asutosh Panda; 14.05.2018
comment
Пробовал много вещей, упомянутых в этой теме - github.com/google-ar/ sceneform-android-sdk / issues / 1, по-прежнему возникает та же проблема. Подожду, пока ошибка будет исправлена ​​командой Google. - person Asutosh Panda; 14.05.2018

Я исправил эту ошибку, удалив mtllib xxxx.mtl в заголовке моего файла obj.

Надеюсь, это поможет кому-то :)

ИЗМЕНИТЬ Я нашел решение, не удалив что-то в файле obj. Просто поместите в одну папку xxxx.mtl и xxxx.obj

person J. Joel    schedule 15.05.2018
comment
У меня не работает. Но команда Sceneform работает над решением проблемы в Linux. Это проблема совместимости с Linux. См. Здесь - github.com/google-ar/sceneform-android-sdk / issues / 13 - person Asutosh Panda; 16.05.2018

Проблема в том, что имя файла .obj отличается от имени файлов .sfa и .sfb, просто переименуйте файл .obj на желаемое имя и никогда не касайтесь имен файлов .sfa и .sfb.

Также убедитесь, что с ним связан файл .mtl.

person Mohammad Elsayed    schedule 02.10.2019

В настоящее время для этого на Github создана проблема. В Ubuntu 18.04 есть проблема совместимости с конвертером, но я не уверен, применим ли он к другим дистрибутивам или более старым версиям Ubuntu. Проблема 13

person CatchingAvocados    schedule 16.05.2018

Google обновил плагин Gradle Sceneform с исправлением этой ошибки. Используйте версию 1.0.1 плагина Sceneform.

В файле build.gradle вашего проекта замените это -

classpath 'com.google.ar.sceneform:plugin:1.0.0'

с этим -

classpath 'com.google.ar.sceneform:plugin:1.0.1'

Он должен идеально импортировать ваши активы. У меня это работает сейчас.

person Asutosh Panda    schedule 16.05.2018

Была такая же ошибка. Это не глюк. Я понял, что это потому, что путь к материалам в файле obj (строка 1) был неправильным. Он все еще думал, что имя файла материалов было «materials.mtl», хотя на самом деле я переименовал его в «tree.mtl» (это была модель дерева).

Урок: не переименовывайте материалы или файлы текстур (если вы не забыли изменить пути внутри файла obj).

person Community    schedule 28.12.2018

Проблема в том, что файл sceneform.asset уже был добавлен в ваш модуль build.gradle. Ниже приведен пример файла sceneform.asset в build.gradle.

sceneform.asset('sampledata/andy.obj',
    'default',
    'sampledata/andy.sfa',
    'src/main/res/raw/andy')

и это всегда будет выдавать сообщение об ошибке, что задача с таким именем уже существует.

Чтобы решить эту проблему, удалите файл sceneform.asset, добавленный в Gradle, и повторите попытку синхронизации, а затем повторно импортируйте файл .sfb еще раз.

Надеюсь, это решит проблему.

person Peter Akwa    schedule 06.11.2019

Возможно, вы не ввели свое ТОЧНОЕ имя 3D-файла при создании пути .sfa ..

Перейдите к последней строке вашего файла gradle и замените свое имя файла в этом коде, где я написал здесь Your-3d-Model-file-Name, и попробуйте снова создать файл sfb вручную ..

apply plugin: 'com.google.ar.sceneform.plugin', sceneform.asset('sample_data/Your-3d-Model-file-Name.obj',

'default', // 'Material Path' specified during import.

'sample_data/Your-3d-Model-file-Name.sfa', ‹--- Здесь вы могли ошибиться

'src/main/res/raw') // 'location you want to store the generated .sfb file'

step4pic

-

Наконец, синхронизируйте файл gradle и перестройте проект ... Ваша модель SFb была бы сгенерирована в указанном вами месте .. Для тех, у кого все еще есть проблемы, также была проблема совместимости между студией Android 3.6 и сценой ... Поэтому тем, кто хочет получить ** полный ответ о том, как создавать файлы sfb, следует нажать здесь **

person Samuel Ewudzi Incoom    schedule 02.05.2020
comment
вопрос решился уже больше года назад. см. ответ ниже. - person Asutosh Panda; 11.05.2020