#xamarin.android
#xamarin.android
Вопрос:
Если я создам новое приложение Mono для Android, затем изменю активную конфигурацию решения на Release, затем щелкните правой кнопкой мыши и выберите build, приложение будет нормально построено.
Если я затем добавлю веб-ссылку наhttp://soatest.parasoft.com/calculator .wsdl согласно этому руководству, тогда при повторной сборке я получаю ошибку:
Ошибка 1 Не удалось загрузить файл или сборку ‘mscorlib, Version = 2.0.5.0, Culture = neutral, PublicKeyToken =7cec85d7bea7798e’ или одну из его зависимостей. Не удалось выполнить строгую проверку имени. (Исключение из HRESULT: 0x8013141A)
C:UsersAdministratorDocumentsVisual Studio 2010ProjectsMonoAndroidApplication3MonoAndroidApplication3SGEN
Если я изменю активную конфигурацию обратно на Debug then build, то решение будет построено нормально. Однако я вообще не могу заставить конфигурацию выпуска для сборки при обращении к какой-либо веб-службе. Это вызывает у меня проблемы, поскольку я не могу развернуть версию выпуска моего приложения.
Я пробовал использовать VS2010 и MonoDevelop 2.6 Beta 2, оба выдают одинаковую ошибку.
Ответ №1:
Я не могу понять, почему это происходит, но вы можете обойти это, перейдя на вкладку «Сборка» в свойствах проекта и отключив «Генерировать сборку сериализации».
Комментарии:
1. Спасибо за ответ, отключение сборки Generate serialization позволяет мне создать версию выпуска приложения. Однако затем вызовы веб-службы выдают мне ошибки при использовании версии выпуска. Отладочная версия по-прежнему работает нормально, даже если сборка Generate serialization отключена. В моем тестовом приложении с использованием soatest.parasoft.com/calculator . wsdl при вызове службы я получаю ошибку: Systen.Net.WebException: Ошибка: ошибка NameResolutionFailure в System.Net.HttpWebRequest. EndGetRequestStream (IAsyncResult AsyncResult) [0x00000] в <имя файла неизвестно>:0
2. Перейдите в свойства вашего проекта, добавьте манифест Android и укажите, что вам требуется разрешение на доступ в Интернет. Это добавляется по умолчанию в режиме отладки для поддержки отладки, но должно быть добавлено вручную в режиме выпуска, если вашему приложению действительно необходимо использовать Интернет.
3. Спасибо, это сработало, моя версия выпуска теперь работает на моем телефоне!
4. У меня была такая же проблема при использовании MonoDevelop. Я добавил следующую строку в раздел выпуска файла: <GenerateSerializationAssemblies>Отключено</GenerateSerializationAssemblies>
Ответ №2:
Создание сборки сериализации не позволило выполнить сборку.
Я получил NameResolutionFailure при выборе целевого выпуска, потому что я не установил разрешение доступа в Интернет в настройках приложения:
- щелкните правой кнопкой мыши свой проект
- выберите параметры
- выберите левый пункт «Mono для приложения Android»
- установите требуемые разрешения: «ИНТЕРНЕТ», установив галочку рядом с ним.
Похоже, что это активно для отладочных сборок, поскольку используется для подключения отладчика к приложению.
Вы должны установить это самостоятельно в конфигурации сборки выпуска.