Gradle 构建失败,新的导入规则

Phu*_*yen 10 android-studio

我将 android studio 更新到 3.6 版后遇到错误。当我尝试导入Scenceform资产时,它在下图中显示警告,无论我点击什么,它都会返回

java.lang.RuntimeException: java.lang.NoSuchMethodError: com.android.tools.idea.templates.recipe.RecipeExecutor.append(Ljava/io/File;Ljava/io/File;)

警告图片和选择选项后的错误

我怎样才能解决这个问题?

Mic*_*ick 18

-- 2020 年 6 月更新 --

Sceneform 1.15 已被开源的 Sceneform 1.16 取代。这似乎也改变了模型构建方法,不再使用 SceneForm 插件和 .sfa/.sfb 工作流程,而是直接支持 .gltf 格式模型。

GitHub 页面上提供了更多信息,尽管 repoitory 现已存档,这使得目前(2020 年 6 月)很难了解 Sceneform 的未来发展方向:

在此处输入图片说明

( https://github.com/google-ar/sceneform-android-sdk )

-- 如果您使用的是 Sceneform 1.15,则解决原始问题的方法 --

要解决此问题,您正在使用 Sceneform 插件 - 见下文:

在撰写本文时,这似乎是 Android Studio 3.6 的问题 - 请参阅此处的问题:

一种解决方法似乎是恢复到 Android Studio 3.5。

或者,手动添加资产似乎有效 - 以 ARCore 在线文档中的示例(https://developers.google.com/ar/develop/java/sceneform)为例:

按照以下步骤导入新的 3D 资产:

  1. 验证您项目的 app 文件夹是否包含 sampledata 文件夹。

    要创建文件夹,请右键单击“项目”窗口中的应用程序文件夹,然后选择“新建”>“示例数据目录”。

    sampledata 文件夹是您的 Android Studio 项目的一部分,但其内容不会包含在您的 APK 中。

  2. 将您的 3D 模型源资产文件(*.obj、*. fbx.gltf)及其所有依赖项( .mtl、*.bin、*.png、*.jpg 等)复制到 sampledata 文件夹中。

    不要将这些源文件复制到您项目的资产或 res 文件夹中,因为这会导致它们不必要地包含在您的 APK 中。

  1. 现在,不要按上面的链接中的说明进行右键单击并使用导入,而是手动将以下几行添加到 build.gradle(app) 文件的底部:
apply plugin: 'com.google.ar.sceneform.plugin'

sceneform.asset('sampledata/andy.obj', // 'Source Asset Path' specified during import.
        'default',                    // 'Material Path' specified during import.
        'sampledata/andy.sfa', // '.sfa Output Path' specified during import.
        'src/main/res/raw/andy')      // '.sfb Output Path' specified during import.
Run Code Online (Sandbox Code Playgroud)
  1. 重建您的项目,并且应正确导入可渲染文件 - 检查 andy.sfb 是否出现在“res/raw”文件夹中以确保。