Failed to open directory не удается найти указанный файл xamarin
Я создаю приложение для Android в Visual Studio. Когда я пытаюсь создать ссылки на приложения в папке «Ресурсы», я получаю одну из двух ошибок.
Если я предваряю «Resource.Layout. [Id]» или «Resource.Id. [Id]» с пространством имен для моего проекта, я получаю эту ошибку:
Тип или имя пространства имен «Ресурс» не существует в пространстве имен «пространство имен приложений» (вам не хватает ссылки на сборку?)
Если я не предишу вызов ресурса с моим пространством имен, он пытается получить доступ к стандарту Android.Resource, и я получаю эту ошибку:
«Android.Resource.Layout» не содержит определения для «[axml file]»
Кто-нибудь сталкивался с этой ошибкой раньше? Я искал какое-то время и не могу придумать ничего, что кажется неправильным. Файл Resource.Designer существует. Я удалил его и дайте ему восстановить. Идентификаторы находятся в файле ресурсов, проект просто не признает, что класс ресурсов существует вообще.
Первоначально пространство имен для этого приложения заканчивалось на «Android». Думаю, что это может быть частью проблемы, я изменил ее на «_Android» и «AndroidApp», включая изменение пространства имен по умолчанию в свойствах проекта и изменение объявления пространства имен в каждом файле. Однако эта ошибка сохраняется через каждое изменение.
Это может произойти, когда вы добавляете новый файл, а Visual Studio устанавливает неправильное действие сборки. Я знаю, что это случилось со мной несколько раз и может потратить годы, пытаясь понять, что происходит. Если вы щелкните файл правой кнопкой мыши и увидите действие «Создать». Это должно быть установлено в Android Resource. Надеюсь, поможет
Пространство имен в вашем коде и пространство имен в проводнике решений должны быть одинаковыми.
В AndroidManifest.xml убедитесь, что имена не зависят от других ресурсов, которые больше не существуют для Ex:
Я пытаюсь создать приложение Xamarin. Когда я пытаюсь начать отладку, у меня появляется такая ошибка: «Система не может найти указанный файл».
Я искал в Интернете и пробовал несколько решений, которые не работали (восстановить VS, проверить, включена ли отладка Mono . )
Я не знаю, как заставить его работать.
Вот вывод ошибки: вывод
И мое расширение: расширение
Я использую VS 2019
Прежде всего, пожалуйста , закройте VS, откройте папку проекта, удалите все из bin и obj папки (ххххх, xxx.Droid, xxxx.IOS) в проекте, затем откройте свой проект снова восстановить его. Вы пробовали создать новый проект? Если эта проблема исчезнет?
Моя проблема заключалась в том, что мой путь содержал неанглоязычный символ (C: / Users / Clément). Мне пришлось переименовать свою пользовательскую папку, и это сработало.
У меня точно такая же проблема. Вы когда-нибудь находили другое решение, которое не требует переименования папки пользователя? Боюсь, что если я переименую папку с пользователями, это испортит работу какой-нибудь другой программы.
Обычно эта проблема возникает из-за того, что отладка Mono отключена, проверьте и подтвердите, включена она или нет, а затем попробуйте.
=> C: \ Program Files (x86) \ Microsoft SDK \ Windows \ v7.1A \ Lib \ x64 для 64-битной системы
=> C: \ Program Files (x86) \ Microsoft SDK \ Windows \ v7.1A \ Lib для 32-битной системы
Менеджер свойств-> Линкер-> Общие-> Дополнительные каталоги библиотек
Как отмечалось выше, ошибка может появиться, если путь к проекту содержит неанглийские символы. Но если в вашем случае это папка пользователя, вам не нужно переименовывать эту папку (что может вызвать проблемы в других программах). Просто создайте новую папку в C:\Users , скопируйте в нее каталог проекта и повторно откройте файл решения в его обновленном месте. Например: C:\Users\vsprojs\myproject
В том виде, в каком оно написано, ваш ответ неясен. Пожалуйста, отредактируйте, чтобы добавить дополнительные сведения, которые помогут другим понять, как это относится к заданному вопросу. Дополнительную информацию о том, как писать хорошие ответы, можно найти в Справочном центре .
The text was updated successfully, but these errors were encountered:
spouliot added the external-xamarin-vs Issues affecting the Xamarin in Visual Studio and are not specific to Xamarin.iOS or Xamarin.Mac label Jan 4, 2019
Xamarin.Android не может разрешить System.ValueTuple
Эта ошибка возникает из-за несовместимости с Visual Studio.
Обновление 1 для Visual Studio 2017 (версия 15.1 или более ранняя) совместимо только с пакетом NuGet System.ValueTuple 4.3.0 (или более ранней версии).
Обновление 2 для Visual Studio 2017 (версия 15.2 или более поздняя) совместимо только с пакетом NuGet System.ValueTuple 4.3.1 (или более поздней версии).
Выберите правильный пакет NuGet System.ValueTuple, соответствующий установке Visual Studio 2017.
Дополнительные сведения о сборке мусора, например о времени, можно создать, задав для переменной среды MONO_LOG_LEVEL значение debug :
В целом чем больше значение num_hash_entries , тем больше времени займут сборки bridge и тем больше будет время total , потраченное на сбор.
Чтобы включить ведение журнала глобальных ссылок, системное свойство debug.mono.log должно содержать gref, например:
Xamarin.Android использует глобальные ссылки Android для предоставления сопоставлений между экземплярами Java и связанными управляемыми экземплярами, так как при вызове метода Java необходимо предоставить экземпляр Java.
К сожалению, эмуляторы Android допускают наличие только 2000 глобальных ссылок за раз. У оборудования существует более высокий предел в 52 000 глобальных ссылок. Меньшее ограничение может представлять проблему при запуске приложений в эмуляторе, поэтому полезно знать, откуда поступает экземпляр.
Количество глобальных ссылок считается внутри Xamarin.Android и не может содержать глобальные ссылки, извлеченные другими собственными библиотеками, загруженными в процесс. Используйте количество глобальных ссылок для расчета.
- Создание глобальной ссылки: это строки, начинающиеся с + g + , которые обеспечивают трассировку стека для создания пути кода.
- Уничтожение глобальной ссылки. это строки, которые начинаются с -g- и могут предоставлять трассировку стека для удаления пути кода глобальной ссылки. Если сборщик мусора удаляет глобальную ссылку, трассировка стека не предоставляется.
- Создание слабой глобальной ссылки. это строки, начинающиеся с + w + .
- Уничтожение ненадежной глобальной ссылки: это строки, начинающиеся с -w- .
В рамках процесса сборки мусора глобальные ссылки (+g+) преобразуются в слабые глобальные ссылки (+w+ и -g-), выполняется сборка мусора на стороне Java, а затем проверяется наличие слабой глобальной ссылки, чтобы определить, была ли она собрана. Если она все еще активна, то для слабой ссылки создается новая глобальная ссылка (+g+, -w-), в противном случае слабая ссылка уничтожается (-w).
Удаление bin и obj
В Xamarin.Android раньше возникала подобная проблема:
- Возникает странная ошибка сборки или времени выполнения.
- Вы выполняете операции Clean , Rebuild или вручную удаляете каталоги bin и obj .
- Проблема исчезает.
Мы много работали над устранением таких проблем, поскольку они влияют на производительность разработчиков.
Если у вас возникает следующая проблема:
- Обратите на нее внимание. Какое действие было выполнено последним и вызвало это состояние проекта?
- Сохраните текущий журнал сборки. Попробуйте выполнить сборку еще раз и запишите диагностический журнал сборки.
- Отправьте отчет об ошибке.
Прежде чем удалять каталоги bin и obj , заархивируйте их и сохраните для последующей диагностики при необходимости. Возможно, достаточно просто выполнить операцию Clean для проекта приложения Xamarin.Android, чтобы все снова заработало.
drewdz commented Nov 4, 2019
@NNebus Will give it a try and advise. Thanks :)
INSTALL_FAILED_UPDATE_INCOMPATIBLE при установке пакета
У пакетов Android есть три требования.
Представьте себе следующий сценарий.
- Вы создаете & развертывание приложения в качестве отладочного приложения.
- Вы изменяете ключ подписывания, например для использования в качестве приложения выпуска (или если вы не хотите использовать ключ подписывания по умолчанию).
- Вы устанавливаете приложение, не удаляя его сначала, например, отладка > запускается без отладки в Visual Studio
Чтобы устранить эту ошибку, полностью удалите приложение с устройства, прежде чем выполнять повторную установку.
drewdz commented Nov 6, 2019
@emaf Thanks so much for the info. Interesting, I followed (only step 1) of @NNebus 's work-around and that seemed have worked somehow. I simply removed the app from the device and did a claim/rebuild and redeploy and it worked.
It's great to hear there is a potential fix in the pipeline. As long as I am able to continue in this fashion I should be good to go. I'll see how long I can continue like this and let you know if it gets any worse.
I'm wondering if the issues before were the same or just the same symptoms.
Again. Thanks so much for your assistance in this regard,
Объект дезактивируется, так как handle == null
matteomonizza commented Nov 13, 2019
Same here. I've found that the build files are not in the folder that is specified in the output but are in: /Users/XXX/Library/Caches/Xamarin/mtbs/builds/MyApp.Mobile.iOS/e17314f941812c38a669a2524fc4c1ac/bin/iPhoneSimulator/Debug/device-builds/ipad6.4-13.1.2/MyApp.Mobile.iOS.app. So the app is in the wrong place!
В сборке выпуска исключение MissingMethodException возникает для динамического кода во время выполнения.
Скорее всего, проект приложения не имеет ссылок на System.Core.dll, Microsoft.CSharp.dll или Mono.CSharp.dll. Убедитесь, что ссылки на эти сборки существуют.
- Помните, что динамический код всегда связан с затратами. Если вам важна эффективность, рекомендуется не использовать динамический код.
В интегрированной среде разработки не отображается целевое устройство
Иногда вы пытаетесь развернуть приложение на устройстве, но устройство, которое вы хотите развернуть, не отображается в диалоговом окне "Выбор устройства". Это может произойти, если Android Debug Bridge неактивен.
Чтобы диагностировать эту проблему, найдите программу adb, а затем выполните следующую команду:
Если устройство отсутствует, необходимо перезапустить сервер Android Debug Bridge, чтобы можно было найти его:
Программное обеспечение HTC Sync может препятствовать правильной работе adb start-server. Если команда adb start-server не выводит порт для запуска, выйдите из программы HTC Sync и попробуйте перезапустить сервер adb.
LeoJHarris commented Nov 1, 2019
Began hitting this issue too, why does Xamarin.iOS have to be sooooo painfull sometimes!
Прерывание из-за несоответствия типов JNI
Выходные данные диагностики MSBuild
Диагностика MSBuild может содержать дополнительные сведения, относящиеся к сборке пакетов, а также некоторые сведения о развертывании пакета.
Чтобы включить вывод диагностики MSBuild в Visual Studio, выполните следующие действия:
Чтобы включить выходные данные диагностики MSBuild в Visual Studio для Mac/OS X, выполните следующие действия.
Слабая ссылка удалена, новая глобальная ссылка не создается
Здесь есть один интересный момент: на целевых объектах под управлением Android до версии 4.0 значение глобальной ссылки равно адресу объекта Java в памяти среды выполнения Android. (Т. е. сборщик мусора является неподвижным консервативным сборщиком и передает прямые ссылки на эти объекты.) Таким образом, после последовательности +g+, +w+, -g-, +g+, -w- получившаяся глобальная ссылка будет иметь то же значение, что и исходная. Это упрощает обработку журналов.
Но в Android 4.0 есть перемещаемый сборщик, который больше не передает прямые ссылки на объекты виртуальных машин среды выполнения Android. Поэтому после последовательности +g+, +w+, -g-, +g+, -w- значение глобальной ссылки будет другим. Если объект остается активным после нескольких сборок мусора, у него образуется несколько значений глобальной ссылки, что усложняет определение места, из которого фактически был выделен экземпляр.
Не удается запустить приложения выпуска на устройстве
У этого есть две возможные причины:
APK не предоставляет ABI, поддерживаемый целевым устройством. Например, APK содержит только двоичные файлы armeabi-v7a, а целевое устройство поддерживает только armeabi.
Ошибка Android. В этом случае удалите приложение, скрестите пальцы и переустановите приложение.
Выходные данные будут содержать основной (и необязательный дополнительный) ABI.
pebr70 commented Nov 12, 2019 •
Same problem with a solution: at first I restarted my mobile phone, my mac and my VisualStudio 2019 (on Windows 7). It didn't help.
Then I had clean the whole solution on VS, and deleted all bin and obj directories. Thereafter I had rebuild the solution, and deployed it. After that I started the app on VS (Win7), the app was deployed properly to my mobile phone and ran as usual. The problem was solved
NNebus commented Nov 4, 2019 •
Okay guys, got it running again.
What i did:
- uninstall all dev-applications so the certificate will be removed from your device
- create a native ios app with xcode
- give the xcode-application the bundle-identifier of your xamarin-application
- run the xcode-application to deploy it to the device (and having the cert re-installed)
- start deployment from your windows maschine (make sure you have the same Bundle-Identifier here like in your xcode-app / -project!)
- your xamarin app should now be able to run on your iOS-Device
Please follow this steps and give a feedback :)
Edit: I know, sounds strange, that a cert is responsible for that, but this fixed my issue.
Динамический код не компилируется
Экземпляр Java создается и упаковывается с помощью MCW
Программное выполнение запросов
Вы можете узнать количество глобальных и слабых ссылок, выполнив запрос к объекту JniRuntime .
Java.Interop.JniRuntime.CurrentRuntime.GlobalReferenceCount — количество глобальных ссылок
Java.Interop.JniRuntime.CurrentRuntime.WeakGlobalReferenceCount — количество слабых ссылок
emaf commented Nov 18, 2019
I'm closing this bug based on that fix, if you're still facing the MT1001 error please report a new issue since it's most likely to have a different root cause.
Я пытаюсь создать приложение Xamarin. Когда я пытаюсь начать отладку, у меня появляется такая ошибка: «Система не может найти указанный файл».
Я искал в Интернете и пробовал несколько решений, которые не работали (восстановить VS, проверить, включена ли отладка Mono . )
Я не знаю, как заставить его работать.
Вот вывод ошибки: вывод
И мое расширение: расширение
Я использую VS 2019
Прежде всего, закройте VS, откройте папку проекта, удалите все папки bin и obj (xxxxx, xxx.Droid, xxxx.IOS) в своем проекте, затем откройте свой проект. снова восстановите его. Вы пробовали создать новый проект? Если эта проблема исчезнет?
munkii commented Jan 4, 2019
Just spoke to the dev that created the project. What i didn't know is that he'd never had it working on VS/Windows either. I moved to Vs/Mac and it works fine
emaf commented Nov 5, 2019
@drewdz @NNebus thanks for the logs you've attached!
@drewdz, in your case the build is being run offline even though you're effectively connected. There's another report tracking that issue and we already have a potential fix for it, if you'd like to get a build with that fix in place to confirm that you're facing that same problem please send me your email address so I can share it with you.
@NNebus based on your workaround, I don't think you're facing the same problem. But in any case, if you want me to confirm that, please attach Diagnostic build output after rebuilding your project. For that, you'd need to first change the output verbosity and then copy the content of the Build Output window to a text file. The logs you've share are just the Xamarin ones.
Не удается запустить указанный исполняемый файл задачи keytool
Это означает, что путь не содержит каталог, в котором находится каталог bin пакета SDK для Java. Проверьте, выполнены ли эти действия из руководства по установке.
spouliot commented Jan 4, 2019
This code leading to this exception is executed on the windows-side only
You might want to try directly on the mac (at least as a temporary workaround)
matteomonizza commented Nov 13, 2019
Sorry, by now i've try the @pebr70 solution and finally it worked. Waiting for the problem to come again.!
Проекты, созданные с помощью AOT + LLVM, завершаются сбоем на устройствах x86
emaf commented Nov 1, 2019 •
Hi all,
Could you attach a Diagnostic[1] build output after rebuilding your project (please make sure the app was not created on the Mac after rebuilding the project)?
Also, it'd be great if you can share your env information (VS, macOS, Xcode versions), attach the Xamarin logs[2], and confirm that you're trying to run an app in a physical device when you get that error.
[1] You can change the build output verbosity from Tools -> Options -> Projects and Solutions -> Build and Run -> MSBuild project build output verbosity
[2] You can get the Xamarin logs from Help -> Xamarin -> Zip Logs while you remain connected to your Mac
Слабая ссылка снова становится глобальной ссылкой
Неожиданные исключения NullReferenceException
Иногда в журнале отладки Android упоминается исключений NullReferenceException, что не может произойти, или поступил из Mono для кода среды выполнения Android вскоре перед выходом из приложения:
Это может произойти, когда среда выполнения Android решает прервать процесс, что может происходить по любому ряду причин, включая ограничение Греф целевого объекта или выполнение чего-то "неправильного" с JNI.
spouliot commented Jan 4, 2019
This code leading to this exception is executed on the windows-side only
You might want to try directly on the mac (at least as a temporary workaround)
Объект по-прежнему активен, так как handle! = null
Выполняется сборка мусора.
Файл monodroid.exe или aresgen.exe завершил работу с кодом 1
чтобы помочь вам в отладке этой проблемы, перейдите в Visual Studio и измените уровень детализации MSBuild. для этого выберите: сервис > параметры > Project и решения > создание и запуск > MSBuild Project детализацию вывода сборки и установите для этого параметра значение обычная.
Выполните сборку повторно и проверьте область вывода Visual Studio, которая должна содержать полную ошибку.
Поддержка динамического кода
Журналы развертывания устройств
Чтобы включить ведение журнала развертывания устройств в Visual Studio, выполните следующие действия.
Visual Studio для Mac всегда записывает журналы развертывания устройств. Найти их немного сложнее — файл журнала AndroidUtils создается на каждый день с указанием времени, когда происходит развертывание, например: AndroidTools-2012-10-24_12-35-45.log.
- в Windows файлы журнала записываются в %LOCALAPPDATA%\XamarinStudio-\Logs .
- В OS X файлы журнала записываются в $HOME/Library/Logs/XamarinStudio- .
drewdz commented Oct 28, 2019
I'm having the same issue:
Launch failed. The app 'MyApp.Mobile.iOS' could not be launched on 'iSafonov'. Error: error MT1001: Could not find an application at the specified directory: /Users/aleksey/Library/Caches/Xamarin/mtbs/builds/MyApp.Mobile.iOS/e17314f941812c38a669a2524fc4c1ac/bin/iPhoneSimulator/Debug/MyApp.Mobile.iOS.app. Please check the logs for more details.Any updates?
I know we're all holding our breath hoping someone can help. In the end the only thing that helped was to uninstall and reinstall VS. After reinstalling VS it worked fine for about 1.5 months; then suddenly one day it started again - same error.
I have no idea how to fix this.
drewdz commented Nov 4, 2019 •
@emaf Attached, is my Build output as well as the Debug output (zipped since the output was a bit on the large side :) ).
As a side note: This started when I was on VS 2019 Pro that was upgraded from VS 2017 Pro in-app. I reset my Windows in an attempt to clean up and reinstall. I couldn't reinstall VS 2019 Pro since my license key is for 2017 so I had to either downgrade to 2017 or downgrade to 2019 Community. I went with community.
Hope you can shed some light here.
На устройстве недостаточно дискового пространства для развертывания пакета
Это происходит, когда вы не запускаете эмулятор из среды Visual Studio. При запуске эмулятора вне среды Visual Studio необходимо передать параметры -partition-size 512 , например
Убедитесь, что используете правильное имя симулятора, т. е. имя, которое использовалось при настройке симулятора.
NNebus commented Nov 4, 2019
got the same issue.
Havn't worked on my App for a few days (for a week or so). Meanwhile I updated my VS and macOS (Deployment-Server).
I now wanted to make a test what I've done last and startet the iOS-Deployment on a real device and hit this error.
@emaf Do you need any other information?
iOS-Logs-RYS.zip
INSTALL_FAILED_INVALID_APK при установке пакета
Имена пакетов Android должны содержать точку (" . "). Измените имя пакета, чтобы оно содержало точку.
Не удалось выполнить обнаружение пакета SDK для Android
Для пакета SDK для Android в Windows Google предоставляет 2 загрузки. При выборе установщика exe будут записаны разделы реестра, указывающие Xamarin.Android на место установки. Если вы выберете ZIP-файл и распакуете его самостоятельно, Xamarin.Android не узнает, где искать пакет SDK. вы можете сообщить Xamarin. Android, где находится пакет SDK, в Visual Studio, выбрав сервис > параметры > Xamarin > Android Параметры:
Aleksey7151 commented Oct 26, 2019
I'm having the same issue:
Launch failed. The app 'MyApp.Mobile.iOS' could not be launched on 'iSafonov'. Error: error MT1001: Could not find an application at the specified directory: /Users/aleksey/Library/Caches/Xamarin/mtbs/builds/MyApp.Mobile.iOS/e17314f941812c38a669a2524fc4c1ac/bin/iPhoneSimulator/Debug/MyApp.Mobile.iOS.app. Please check the logs for more details.
Прерывание из-за исчерпания глобальной ссылки
Слой JNI среды выполнения Android поддерживает только ограниченное число действительных ссылок на объекты JNI в любой момент времени. При превышении этого ограничения происходит прерывание операции.
Ограничение глобальных ссылок составляет 2000 ссылок для эмулятора и примерно 52 000 ссылок для оборудования.
Вы можете включить Ведения журнала глобальных ссылок, чтобы увидеть, когда глобальные ссылки создаются и сколько их.
Системные свойства Xamarin.Android
Xamarin.Android поддерживает следующие системные свойства.
debug.mono.debug. Если не пустая строка, эквивалентно *mono-debug* .
debug.mono.env. Разделенный вертикальной чертой список переменных среды ( | ), которые необходимо экспортировать во время запуска приложения перед инициализацией Mono. Это позволяет задать переменные среды, управляющие ведением журнала Mono.
Так как значение | разделено, оно должно иметь дополнительный уровень заключения в кавычки, так как команда "ADB Shell" удалит набор кавычек.
Длина значений системных свойств Android не может превышать 92 символа.
Это чрезвычайно подробный уровень. Не включайте этот параметр, если он вам не требуется.
debug.mono.trace. Позволяет задать параметр mono --trace =PROPERTY_VALUE .
INSTALL_FAILED_MISSING_SHARED_LIBRARY при установке пакета
"Общая библиотека" в этом контексте не является файлом собственной общей библиотеки (libfoo.so). Это библиотека, которая должна быть отдельно установлена на целевом устройстве, например в Google Maps.
Пакет Android определяет, какие общие библиотеки требуются для элемента . Если на целевом устройстве отсутствует необходимая библиотека (например //uses-library/@android:required , значение по умолчанию — true), установка пакета завершится с INSTALL_FAILED_MISSING_SHARED_LIBRARY.
Чтобы определить, какие общие библиотеки требуются, просмотрите созданный файлAndroidManifest.xml (например, obj\Debug\android\AndroidManifest.xml) и найдите элементы. элементы можно добавлять вручную в файл Properties\AndroidManifest.xml проекта и с помощью настраиваемого атрибута усеслибраряттрибуте.
Например, при добавлении ссылки на сборку в Mono.Android.GoogleMaps.dll будет неявно добавляться для общей библиотеки Google Maps.
spouliot commented Jan 4, 2019
@munkii glad using the Mac can work around your issue and thanks for confirming it!
Журналы отладки Android
Журналы отладки Android могут предоставить дополнительный контекст для любых ошибок во время выполнения.
Выходные данные журнала отладки Android
Свойства системы считываются во время запуска процесса и поэтому должны быть установлены перед запуском приложения, или приложение должно быть перезапущено после изменения системных свойств.
INSTALL_FAILED_UID_CHANGED при установке пакета
При установке пакета Android ему назначается идентификатор пользователя (UID). Иногда по неизвестным причинам при установке поверх уже установленного приложения происходит сбой установки с ошибкой INSTALL_FAILED_UID_CHANGED :
Чтобы обойти эту ошибку, полностью удалите пакет Android, установив приложение из графического пользовательского интерфейса целевого устройства Android или используя adb :
Не используйте adb uninstall -k , так как это сохранит данные приложения и , таким образом, сохранит конфликтующий UID на целевом устройстве.
emaf commented Nov 13, 2019
Свойство свойства Path не задано для проекта "MyApp. csproj"
Обычно это означает, что у вас есть компьютер HP и переменной среды "Platform" задано нечто вроде MCD или ХПД. это противоречит свойству платформы MSBuild, для которой обычно задано значение "любой цп" или "x86". Необходимо удалить эту переменную среды с компьютера, чтобы MSBuild мог работать:
- панель управления > системных > переменных среды с расширенными возможностями >
Перезапустите Visual Studio или Visual Studio для Mac и попытайтесь выполнить перестроение. Теперь все должно работать правильно.
Чтобы обойти это решение, используйте предоставленные типы коллекций Java вместо System.Collections.Generic типов для "внутренних" типов. Это приведет к появлению соответствующих типов Java при маршалинге экземпляров. (Следующий код является более сложным, чем требуется для сокращения времени жизни Греф. Можно упростить изменение исходного кода с помощью s/List/JavaList/g , а s/Dictionary/JavaDictionary/g также если Греф время жизни не беспокойтесь.)
Производительность операций с плавающей запятой очень низкая!
Или: "Мое приложение работает 10 раз быстрее с отладочной сборкой, чем со сборкой выпуска!"
Xamarin.Android поддерживает несколько ABI устройств: armeabi, armeabi-v7a и x86. abiи устройств можно указать в Project свойства > поддерживаемые архитектуры вкладки > приложения.
В отладочных сборках используется пакет Android, который предоставляет все ABI, поэтому для целевого устройства будет использоваться самый быстрый ABI.
Сборки выпуска будут включать только ABI, выбранные на вкладке "Свойства проекта". Можно выбрать несколько ABI.
armeabi является интерфейсом ABI по умолчанию и обладает самыми широкими возможностями поддержки устройств. Однако armeabi не поддерживает многопроцессорные устройства и аппаратные операции с плавающей запятой, а также другие возможности. Следовательно, приложения, использующие среду выполнения armeabi, будут привязаны к одному ядру и будут использовать реализацию soft-float. Оба ограничения могут значительно снизить производительность приложения.
Если приложению требуется высокая производительность для операций с плавающей запятой (например, игры), следует включить ABI armeabi-v7a. Вы можете выбрать поддержку только среды выполнения armeabi-v7a, хотя это означает, что старые устройства, которые поддерживают только armeabi, не смогут запустить приложение.
drewdz commented Jan 15, 2019
Exact same behaviour for me. Issues seemed to appear intermittently after updating VS on PC to 15.9.4. Using the Mac as a workaround is very tedious.
PC running VS Professional 2017 version 15.9.4 (config attached)
Mac build host is running macOS Mojave 10.14.2 and XCode 10.1
We have a rather large project for a client. At first it only affected another project in the suite but now it is affecting both iOS projects. I have compared project files, Info.plist, Entitlements.plist (etc) from before the problem and there are no significant differences.
Basically the VS parsing of the code completes, then the handover to the build host quietly fails. Watching ActivityMonitor on the Mac reveals that nothing gets started there.
3 ответа
Моя проблема заключалась в том, что мой путь содержал неанглоязычный символ (C: / Users / Clément). Мне пришлось переименовать свою пользовательскую папку, и это сработало.
У меня точно такая же проблема. Вы когда-нибудь находили другое решение, которое не требует переименования папки пользователя? Боюсь, что если я переименую папку с пользователями, это испортит работу какой-нибудь другой программы.
Обычно эта проблема возникает из-за того, что отладка Mono отключена, проверьте и подтвердите, включена она или нет, а затем попробуйте.
=> C: \ Program Files (x86) \ Microsoft SDKs \ Windows \ v7.1A \ Lib \ x64 для 64-битной системы
=> C: \ Program Files (x86) \ Microsoft SDKs \ Windows \ v7.1A \ Lib для 32-битной системы
Менеджер свойств-> Линкер-> Общие-> Дополнительные каталоги библиотек
Как отмечалось выше, ошибка может появиться, если путь к проекту содержит неанглийские символы. Но если в вашем случае это папка пользователя, вам не нужно переименовывать эту папку (что может вызвать проблемы в других программах). Просто создайте новую папку в C:\Users , скопируйте в нее каталог проекта и повторно откройте файл решения в его обновленном месте. Например: C:\Users\vsprojs\myproject
В том виде, в каком оно написано, ваш ответ неясен. Пожалуйста, edit добавьте дополнительные сведения, которые помогут другим понять, как это решает заданный вопрос. Дополнительную информацию о том, как писать хорошие ответы, можно найти в справочном центре.
В Xamarin.Android есть несколько областей, которые следует рассмотреть при отслеживании различных ошибок. Сюда входит следующее.
- Выходные данные диагностики MSBuild.
- Журналы развертывания устройств.
- Выходные данные журнала отладки Android.
Читайте также: