Сбой сборки Gradle с новыми правилами импорта - PullRequest
7 голосов
/ 29 февраля 2020

Я встретил ошибку после обновления 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;)

warning picture and the error after choose option

Как можно Я это исправлю?

1 Ответ

8 голосов
/ 04 марта 2020

Похоже, что это проблема с Android Studio 3.6 на момент написания - смотрите проблему здесь:

Похоже, что одним из обходных путей является возврат к Android Studio 3.5.

Альтернативное добавление актива вручную, похоже, работает - пример, приведенный в онлайн-документации для ARCore (https://developers.google.com/ar/develop/java/sceneform* 1014) *):

Выполните следующие шаги для импорта нового 3D-ресурса:

  1. Убедитесь, что папка приложения вашего проекта содержит папку с выборочными данными.

    Чтобы создать папку, щелкните правой кнопкой мыши папку приложения в окне «Проект», затем выберите «Создать»> «Каталог образцов данных».

    Папка с образцами является частью проекта Android Studio, но ее содержимое не будет быть включенным в ваш APK.

  2. Скопируйте исходный файл ресурсов 3D-модели (* .obj, * .fbx или .gltf) и все его зависимости (* 1031). * .mtl, * .bin, * .png, * .jpg и др. c.) в папку с примерами.

    Не копировать сохраните исходные файлы в папке вашего проекта или в папке res, так как это приведет к их ненужному включению в ваш APK.

Теперь вместо того, чтобы щелкнуть правой кнопкой мыши и использовать импорт, как указано в инструкции выше по ссылке go, добавьте следующие строки в конец файла 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.
Перестройте ваш проект, и рендеринг должен быть правильно импортирован - убедитесь, что andy.sfb появился в папке 'res / raw'.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...