Как настроить Unity 2017.4 для Android и избежать сбоев сборки на OSX?

Я боролся с несколькими сбоями сборки после установки новой / новой системы с последней версией Android Studio (3.1) и Unity (2017.4). Неудачи вроде:CommandInvokationFailure: невозможно перечислить целевые платформы. Пожалуйста, убедитесь, что путь Android sdk правильный это охватывает несколько дубликатов, так как предлагаемые решения обходные пути и не объясняют корневую проблему хорошо и как изящно решить это на Mac.

на единство -> Настройки -> Внешний Инструменты Я правильно установил путь Android SDK, чтобы указать на тот, который установлен Android Studio, а также JDK, чтобы указать на версию JDK 8 (я знаю, что сейчас инструменты Android не работают с Java 9+), но я все еще получаю сбои сборки.

Я ищу решение, которое:

  1. позволяет мне сохранить несколько версий java (я использую jenv)
  2. не связывается с символическими ссылками в моей java setup
  3. позволяет мне использовать мою установку Android sdk (я использую один в Android Studio) и не требует от меня возиться с ним (e.g понижение Android Tools), за исключением официальной установки любого отсутствующего модуля

1 ответов


кажется, что для того, чтобы сделать Android строит текущую версию Unity не только полагается на JDK, настроенный в Настройки -> Внешние Инструменты но также и на глобальном Java home, возвращенном командой /usr/libexec/java_home на Macs. Поэтому оба должны указывать на версию JDK 8 (v 9 или 10 не будут работать).

так, если это не вариант для вас, чтобы удалить Java 9/10 из системы, вы должны убедиться, что /usr/libexec/java_home указывает на JDK 8 установка.

к сожалению, эта команда не позволяет установить или настроить конкретный JDK-он возвращает самую высокую версию по умолчанию, на основе сортировки информации, представленной в Info.plist под Contents в каждой виртуальной машине.

обязательное условие: убедитесь, что вы загрузили все необходимые модули для сборки через SDK manager Android Studio

решение: чтобы исправить это изящно, вы можете перейти к /Library/Java/JavaVirtualMachines найдите ЗИС равны 9 или больше (прямо сейчас либо 9, либо 10) и в их Contents переименовать каталог Info.plist to Info.plist.off или аналогичные. Этот JDK все еще можно использовать, когда $JAVA_HOME указывает на него или явно ссылается в скрипте или конфигурации (например, используется с jenv). После этого /usr/libexec/java_home укажет на JDK 8 VM, и ваша сборка будет успешной.

надеюсь, это не будет проблемой, как только Google убедится, что инструменты Android работают с последними версиями Java, и как только Unity полагается полностью настроен СДК, а также с помощью системы глобальной системе Java произвольно.