Ошибка С# Xamarin Java.Interop?

Здравствуйте, начиная с последнего Xamarin update, мы получаем это error.

CS0012 Тип "IJavaPeerable" определен в сборке, на которую не ссылаются. Вы должны добавить ссылку на сборку "Java.Interop, Version = 0.1.0.0, Culture = neutral, PublicKeyToken = 84e04ff9cfb79065". ImageLibrary C:\Users\rutge\Source\Repos\GarderobeApp\ImageSwiper\ImageSwiper.cs 33 Active

Есть ли у кого-нибудь идеи, что это значит?

Ответ 1

Вы можете найти его здесь

C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\MonoAndroid\v1.0\Java.Interop.dll

тогда:

  • Перейдите в свой проект Android
  • Щелкните правой кнопкой мыши по ссылке и выберите "Добавить ссылку"
  • Просмотр местоположения файла
  • Добавить и сделать

если вы все еще получаете ошибку, попробуйте перестроить проект

Ответ 2

Я получаю ту же ошибку после последнего обновления. Вам просто нужно добавить ссылку на Java.Interop, чтобы решить проблему.

  • Перейдите в свой проект Android
  • Щелкните правой кнопкой мыши по ссылке и выберите "Добавить ссылку"
  • На сборке найдите Java.Interop и добавьте его
  • Перестройте свой проект

Если вам нужны скриншоты, я могу предоставить их позже.

Ответ 3

Вы можете навести курсор на строку нарушения и увидеть пропущенную DLL.

Линия, жалующаяся на отсутствие ссылки

Теперь добавьте недостающую ссылку;

  • Откройте "Обозреватель решений" и щелкните правой кнопкой мыши ссылку "Ссылки" и выберите "Добавить ссылку" Добавить Ссылка из Solution Explorer

  • В диспетчере ссылок нажмите "Обзор" и "Обзор снова". Добавить ссылку

  • В диалоговом окне файла скопируйте и вставьте этот путь:

    C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\MonoAndroid\v1.0\

Перейти к пути к DLL

Нажмите Java.Interop.dll

Добавить файл

  1. Хорошо, что диспетчер ссылок

Ответ 4

Вы можете напрямую скопировать сборку Java.Interop.dll из папки C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\MonoAndroid\v1.0 в bin/Debug вашего проекта, чтобы решить проблему.

Эта процедура отлично сработала для меня.

Спасибо,

Ответ 5

В моем случае это было немного по-другому, я не мог найти папку моноандроида в

C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework. 

Так что дальше я искал и нашел его в

C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\ReferenceAssemblies\Microsoft\Framework\MonoAndroid

Это может быть в случае с кем-то еще.

Ответ 6

Эти ошибки не связаны с проблемой с решением или ссылками. Они являются побочным продуктом других изменений, которые, похоже, путают такие инструменты, как ReSharper. По крайней мере, это правильно в моем случае, мое решение все еще компилируется и функционирует без ручного ссылки на любые ссылочные сборки.

Для этого есть отчет об ошибке Xamarin, но они определили, что это внешняя проблема с ReSharper в соответствии с моим опытом.

Вместо того, чтобы вручную добавлять ссылки на проект, вы также можете сказать ReSharper просто игнорировать ошибки, открыв:

ReSharper -> Windows -> Solution Errors

И затем проигнорируйте проблемы здесь.

Ответ 7

В моем случае iOS и Android используют кажущийся бизнес-уровень, когда я запускаю мое приложение для Android работает нормально, но когда я запускаю iOS, покажите мне ошибку. Вы должны добавить ссылку на сборку "Java.Interop, Version = 0.1.0.0, Culture = нейтральный, PublicKeyToken = 84e04ff9cfb79065'

Проблема была в том, что я использовал JSONObject от Org.Json

https://docs.microsoft.com/en-us/dotnet/api/org.json.jsonobject?view=xamarin-android-sdk-9

эта длл просто работает с андроидом

Мне нужно изменить для JsonObject из System.Json

https://docs.microsoft.com/en-us/dotnet/api/system.json.jsonobject?view=dotnet-plat-ext-2.1

Это было мое решение, теперь мои два приложения работают