Не удалось найти тип или имя пространства имен ‘DynamicMethod’ (вам не хватает директивы using или ссылки на сборку?)

c# #unity3d

#c# #unity3d

Вопрос:

После преобразования моего проекта Unity в iOS появляется эта ошибка, она работает нормально, когда проект конвертируется в android. DynamicMethod использует System.Reflection.Emit.mata file . Я использую unity 2020.3.3f1

Комментарии:

1. Ошибка поступает из библиотеки ultimateJson .

2. Пожалуйста, проверьте наличие using директивы, надеюсь, она не обернута вокруг чего-то вроде #if UNITY_ANDROID , может быть, это может быть проблемой.

Ответ №1:

Документация Unity:

iOS не разрешает генерацию кода во время выполнения. Следовательно, любой управляемый код, который зависит от своевременной компиляции (JIT) на целевом устройстве, завершится ошибкой. Вместо этого вы должны скомпилировать весь управляемый код заблаговременно (AOT). Часто это различие не имеет значения, но в нескольких конкретных случаях платформы AOT требуют дополнительного рассмотрения.

Платформа AOT не может реализовать ни один из методов в System.Reflection.Emit namespace . Остальное System.Reflection приемлемо, если компилятор может сделать вывод, что код, используемый с помощью отражения, должен существовать во время выполнения.