28 мая 2019

Unity: как я потратил свой выходной...


Весь день боролся с непонятными ошибками, из-за которых не мог собрать проект.
Если коротко: "не качайте android ndk через android studio".
Всё, можно спокойно выдохнуть и рассказать последовательно как, что и зачем :)

Билд x64

Вроде бы с августа 2019-ого андроид-магазин (play.market) уже не будет допускать к публикации приложения без x64 архитектуры. Глянул в консоле - вот те на, у меня как раз все проекты только на x32 архитектуре. Получается, нужно пересобрать и залить новые билды, чтобы не было проблем.
Итак, задача: сбилдить проект в x32 + x64
За работу!

Непонятные галочки

Погуглил где есть настройка для билда в x64.
Итак, есть магические галочки вот тут:


Внизу галочка ARM64, но чтобы стала доступной, вверху выбираем IL2CPP.
Жмякаем и в путь.
Увидел странный комментарий "вам еще понадобится android ndk". Чего? Что за ndk? Человек опечатался, и вместо sdk написал ndk? Ну, может быть! Но комментарий я этот запомнил.

Android NDK

Поставил галочки, Unity сразу проверил dependencies, нашел проблемы, сам их пофиксил (какой умничка!)
И вот я попробовал сбилдить с нужными галочками. А Unity мне говорит: "укажите путь к android ndk". Ага! То есть реально есть какая-то заморочка с этим, и человек не опечатался. Тогда я погуглил "как установить android ndk" - и попал сюда, где по пунктам расписано какие галки включить, чтобы android studio докачал android ndk. И если вы, как и я, не читаете статьи до конца - то я вам сразу скажу: НЕ ДЕЛАЙТЕ ТАК! Установка этой галочки привела в тому, что я весь день бегал за ошибками.

Unity и NDK

И вот я скачал ndk через android studio. Теперь, чтобы забиндить путь к ndk, нужно зайти сюда:


Всё сделал, но проект не собирался.
Зашел проверить, всё ли ок с папкой, которую я указал для ndk. И тут я заметил кнопку download. Жмякнул - Unity начал откуда-то выкачивать ndk. Ну ок. Давай с этим ndk попробуем. Скачал, распаковал, указал новый путь. И тут я попал в водоворот странных ошибок и еще более странных путей их решения в интернете.

Ошибки, ошибки, ошибки

Не буду грузить тем, что в итоге поломалось, и что я пробовал, чтобы решить проблему. Чтобы лучше гуглилось, я скину логи ошибок в самый низ этого сообщения. А здесь коротко расскажу, что я пробовал:

  • Убрал ссылку на ndk и вернул галки как было 
  • Удалял папки gradle по всей системе (совет отсюда)
  • Устанавливал custom gradle template и руками его правил в блокноте (совет отсюда)
  • Качал новые java sdk, android sdk и прочие умные названия
  • В какой-то момент Unity начал выдавать "build successful", а итогового файла нет
  • Перегружал стопицот раз Unity и макбук
  • Танцевал с бубном

Уже была ночь и вдруг полил очень сильный дождь. Так что бубен работает!

Решение

Я не хотел сдаваться, и в два часа ночи наткнулся здесь на такой вариант - удалите ndk из android studio. И да, это помогло. Выходит, если ndk есть в составе android sdk, и даже я не использую его для сборки - оно всё равно цепляется и кастит ошибки на выходе. Это очень печально.

Некоторые ошибки, которые у меня были

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring project ':Firebase'.
Could not resolve all files for configuration ':Firebase:classpath'.


FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring root project 'gradleOut'.
Could not resolve all files for configuration ':classpath'.


FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring root project 'gradleOut'.
No toolchains found in the NDK toolchains folder for ABI with prefix:

Сообщения, схожие по тематике:

0 коммент.:

Отправить комментарий