2014-11-13 2 views
4

Я использую недавно выпущенный предварительный просмотр Visual Studio 2015 вместе с расширением Xamarian Studio 5.6.3 (или 5.6.2) для Visual studio.Получение сбоя Создание приложения для Android с использованием расширения Xamarin для Visual Studio 2015 Preview

После нескольких часов загрузки и установок всего необходимого программного обеспечения (все сделано успешно), я начал разработку Android приложения в VS2015P, но каждый раз, когда я создаю пустое приложение для Android, я получаю эту ошибку, без кода ошибки:

Задача «MergeApkRecipelists» не получила значения для требуемого параметра «RecipeFiles».

+0

Я вижу то же самое –

+0

У нас есть ошибка, зарегистрированная здесь: https://bugzilla.xamarin.com/show_bug.cgi?id=24510 –

+0

Я вижу это для VS2010 и VS2013. Я не могу заставить VS2015 даже видеть, что Xamarin установлен. Похоже, ошибок много. Вы бы знали, что Ксамарин был вовлечен. – DaveDev

ответ

0

Попробуйте обновить Xamarin до 3.9. Update

+0

да, это обновлено upto 3.9 – ARK

4

Понял об этом, посмотрев файлы .targets Xamarin.

Короткая версия

Вы можете:

  • Создание Android C++ проект библиотеки и ссылки, что из проекта Xamarin Android

или

  • Прокомментируйте элемент Import, определенный в% PROGRAMFILES (x86)% \ MSBuild \ Xamarin \ Android \ Xamarin.Android.Common.After.targets. Обратите внимание, что это скорее всего отключит поддержку для добавления ссылок на проекты C++ на проекты Xamarin Android.

Как только вы сделаете один из этих проектов, ваш проект Xamarin Android должен быть построен и запущен.

Long Version

Во-первых, обратите внимание на ошибку в окне вывода VS:

C:\Program Files (x86)\MSBuild\Xamarin\Android\Xamarin.Android.Common\ImportAfter\Microsoft.Cpp.Android.targets(54,9): error MSB4044: The "MergeApkRecipelists" task was not given a value for the required parameter "RecipeFiles".

Файл Microsoft.Cpp.Android.targets упоминается в сообщении об ошибке выглядит все о поддержка ссылок на проекты C++. В нем элемент для MergeApkRecipelists задачи выглядит так:

<!-- language: lang-xml --> 
<MergeApkRecipelists RecipeFiles="@(_NativeAndroidRecipeFiles)"> 
     ... 
</MergeApkRecipelists> 

Переменная NativeAndroidRecipeFiles, кажется, не быть определены в файлах .targets, поэтому предположительно он инициализируется в процессе сборки. Но так как файл .targets, кажется, направлен на поддержку C++ рефов проекта, я попытался добавление Android C++ общего проект библиотеки для моего решения:

Adding Dynamic Shared Library (Android) project

Тогда я сослался на проекте C++ из моего проекта Xamarin Android, и вуаля! После этого успех был успешным.

Но так как это довольно обременительно, чтобы принести фиктивную библиотеку, я также отслеживал, куда втягивается файл Microsoft.Cpp.Android.targets от Xamarin.Это происходит в C: \ Program Files (x86) \ MSBuild \ Xamarin \ Android \ Xamarin.Android.Common.After.targets файл, который имеет один Import элемент:

<!-- language: lang-xml --> 
<Import Project="$(MSBuildThisFileDirectory)\Xamarin.Android.Common\ImportAfter\*" 
     Condition="Exists('$(MSBuildThisFileDirectory)\Xamarin.Android.Common\ImportAfter')"/> 

Это приносит все под% ProgramFiles (x86) \ MSBuild \ Xamarin \ Android \ Xamarin.Android.Common \ ImportAfter. Поскольку единственным элементом в этом каталоге является файл .targets, который мы хотим исключить, это можно прокомментировать, не затрагивая ничего другого. Но примечание что, поскольку этот файл .targets является частью поддержки для ссылки на проекты на C++ из проектов Xamarin Android, комментируя это, предположительно означает, что он больше не будет работать должным образом.

С заявлением Import, проект Xamarin Android должен строиться и запускаться без ссылок на C++.

+0

Спасибо, Rich просто получил эту ошибку за несколько минут до вашего ответа, и это сработало как шарм. Не забудьте записать отчет об ошибке с помощью Xamarin. –

+0

@J Chapman - я не могу зарегистрировать ошибку напрямую, поэтому я опубликовал информацию на форумах Xamarin (https://forums.xamarin.com/discussion/27820/xamarin-3-9-android- visual-studio-build-error-and-workaround) –

+1

Вы также можете применить правильное исправление за это время (которое мы внедрили в продукт и должно выйти очень скоро). Просто добавьте следующее условие в строку 54 файла целей в C: \ Program Files (x86) \ MSBuild \ Xamarin \ Android \ Xamarin.Android.Common \ ImportAfter \ Microsoft.Cpp.Android.targets: '' – kzu

1

Просто добавьте следующее условие в строку 54 файла целей в C: \ Program Files (x86) \ MSBuild \ Xamarin \ Android \ Xamarin.Android.Common \ ImportAfter \ Microsoft.Cpp.A. Ndroid.targets:

<MergeApkRecipelists RecipeFiles="@(_NativeAndroidRecipeFiles)" Condition="'@(_NativeAndroidRecipeFiles)' != ''">

Примечание: это постоянное исправление будет поставляться в ближайшее время в альфа-канале.

Смежные вопросы