代码之家  ›  专栏  ›  技术社区  ›  Asutosh Panda

在Android studio上使用Sceneform插件导入模型,但获取“创建sfa时出错”

  •  5
  • Asutosh Panda  · 技术社区  · 6 年前

    我在试新的 Sceneform 来自Google for AR的SDK。

    它说使用Google Sceneform工具插件来导入资产。所以我遵循上面提到的所有步骤 here 导入我的资产。

    在导入任何三维模型时(以.obj或.fbx格式),每当我遇到此错误时- 创建sfa时出错 没有其他错误详细信息,然后它提供了一个恢复资产导入过程的选项。

    我使用的是Android Studio 3.1.2,我使用的是Linux操作系统(Ubuntu 18.04)。

    我一次又一次地验证了这些步骤,但一切看起来都很好。还有其他人面临同样的问题吗?

    8 回复  |  直到 6 年前
        1
  •  2
  •   Koorosh    6 年前

    github上的此解决方案帮助我:

    Link

    1.右键单击3D资源并选择“导入场景表单资源”

    2.单击“完成”

    3.单击“保留断开的渐变更改”

    4.在“gradle文件已更改…”单击“立即同步”-同步成功。在sampledata文件夹中创建的sfa文件,以及。在资产文件夹中创建的sfb文件

        2
  •  2
  •   J. Joel    6 年前

    我已通过删除“mtllib xxxx”修复了此错误。我的obj文件头中的mtl。

    希望它能帮助别人:)

    编辑 我在没有删除obj文件中的某些内容的情况下找到了解决方案。只是把xxxx放在同一个文件夹里。mtl和xxxx。obj公司

        3
  •  1
  •   Mohammad Elsayed    5 年前

    问题是的名称。obj文件与的不同。sfa和。sfb文件,只需重命名。obj文件的名称为您想要的,并且永远不要接触的名称。sfa和。sfb文件。

    还要确保。mtl文件与之关联。

        4
  •  0
  •   CatchingAvocados    6 年前

    当前在Github上为此创建了一个问题。Ubuntu 18.04中的转换器存在兼容性问题,但我不确定它是否适用于其他发行版或Ubuntu的旧版本。 Issue 13

        5
  •  0
  •   Asutosh Panda    6 年前

    Google现在已经更新了Sceneform gradle插件,并修复了这个bug。使用Sceneform插件的1.0.1版。

    在项目生成中。gradle文件,替换此-

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

    用这个-

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

    它应该完美地导入您的资产。现在对我有用了。

        6
  •  0
  •   user9958001 user9958001    6 年前

    有相同的错误。这不是小故障。我意识到这是因为obj文件(第1行)中的材质路径不正确。它仍然认为材料文件的名称是“材料”。事实上,我已经将其重命名为“tree”。mtl’(它是一棵树的模型)。

    教训:不要重命名材质或纹理文件(除非您记得更改obj文件内的路径)。

        7
  •  0
  •   Peter Akwa    5 年前

    问题是因为场景窗体。资产文件已添加到模块生成中。格拉德尔。下面是一个场景窗体的示例。内部版本中的资产文件。格拉德尔

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

    这将始终提供一条错误消息,表明具有此名称的任务已经存在。

    要解决此问题,请删除sceneform。资产文件已添加到Gradle,请重试同步,然后重新导入。再次输入sfb文件。

    希望这能解决问题。

        8
  •  0
  •   Samuel Ewudzi Incoom    4 年前

    可能是您没有键入 准确的 上的三维文件名。sfa路径生成。。

    转到gradle文件的最后一行,并在我编写的代码中替换文件名 您的-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 studio 3.6和sceneform之间也存在兼容性问题。。。 所以那些想要**完整答案的人 关于如何生成sfb文件 click here **