Не удалось выполнить задачу «GenerateJavaStubs»

Я создал один новый проект в Visual Studio и только che в .xml файле (поместил два фреймовых макета), и когда я отлаживаю код, у меня есть одна ошибка, пожалуйста, сообщите мне решение

 Error 1 The "GenerateJavaStubs" task failed unexpectedly. System.InvalidOperationException: Sequence contains no elements at System.Linq.Enumerable.Max(IEnumerable`1 source) at Xamarin.Android.Tools.TypeNameMapGenerator.WriteBinaryMapping(Stream o, Dictionary`2 mapping) at Xamarin.Android.Tools.TypeNameMapGenerator.WriteJavaToManaged(Stream output) at Xamarin.Android.Tasks.GenerateJavaStubs.UpdateWhenChanged(String path, Action`1 generator) at Xamarin.Android.Tasks.GenerateJavaStubs.WriteTypeMappings(List`1 types) at Xamarin.Android.Tasks.GenerateJavaStubs.Run() at Xamarin.Android.Tasks.GenerateJavaStubs.Execute() at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute() at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__20.MoveNext() TMS_TabletView.Droid 

Solutions Collecting From Web of "Не удалось выполнить задачу «GenerateJavaStubs»"

Это может произойти, если вы используете один из плагинов Xamarin, которые используют CrossCurrentActivity, например Plugins.Share, и если у вас есть класс Application с тегом [Application]. Это связано с тем, что при установке nuget он генерирует другой класс приложения с тем же тегом и вызывает отказ GenerateJavaStubs.

Решение просто удаляет один из классов Application / объединяет их в один.

Для меня это произошло после установки плагина Share Xamarin ( https://www.nuget.org/packages/Plugin.Share ). Я задал тему своего Android-приложения в сборкеinfo.cs с приведенной ниже строкой:

 [assembly: Application(Theme = "@style/AppStyle.myApp")] 

Просто удаление этой строки разрешило проблему, и я затем задал тему в MainActivity, как и вы, в любом случае.

Я столкнулся с этой проблемой и получил все те же сообщения об ошибках при создании моего первого приложения на Visual Studio Professional 2015 (с Xamarin). Не знаю, будет ли это полезно для кого-то другого, но мы наткнулись на то, что исправило проблему для нас.

В MainActivity.cs есть некоторый код по умолчанию, когда вы сначала открываете проект «Пустое приложение», но мы удалили часть этого кода и скопировали его / вставили поверх него. Первоначально это выглядит так:

  namespace App3 { [Activity(Label = "App3", MainLauncher = true, Icon = "@drawable/icon")] public class MainActivity : Activity { int count = 1; protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); // Set our view from the "main" layout resource SetContentView(Resource.Layout.Main); // Get our button from the layout resource, // and attach an event to it Button button = FindViewById<Button>(Resource.Id.MyButton); button.Click += delegate { button.Text = string.Format("{0} clicks!", count++); }; } } } 

Чтобы исправить это: мы попытались вернуть эти строки в код MainActivity.cs :

 [Activity(Label = "App3", MainLauncher = true, Icon = "@drawable/icon")] public class MainActivity : Activity { int count = 1; protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); // Set our view from the "main" layout resource SetContentView(Resource.Layout.Main); // Get our button from the layout resource, // and attach an event to it Button button = FindViewById<Button>(Resource.Id.MyButton); 

И затем мы запустили код, и ошибка исчезла. Наверное, это просто глупая ошибка, и она не всегда решит проблему, но она сработала для нас.

Если у вас есть конструктор класса Activity, добавьте конструктор по умолчанию. Или вы можете удалить конструкторы в классе.

Это старый исходный код.

 [Activity(Label = "MyActivity", ScreenOrientation = ScreenOrientation.Portrait)] public class MyActivity : BaseActivity { bool param; protected override int LayoutResource { get { return Resource.Layout.myactivity; } } public MyActivity(bool param = false) { this.param = param; } protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); } ... } 

Обновлен новый исходный код.

 [Activity(Label = "MyActivity", ScreenOrientation = ScreenOrientation.Portrait)] public class MyActivity : BaseActivity { bool param; protected override int LayoutResource { get { return Resource.Layout.myactivity; } } public MyActivity() { } public MyActivity(bool param = false) { this.param = param; } protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); } ... } 

У меня была эта проблема, потому что по какой-то причине моя библиотека классов Android изменилась на тип приложения Android – поэтому VS искал класс Application в проекте.

Решение состояло в том, чтобы создать пустую библиотеку классов android и сравнить файлы проекта. Я удалил любые теги xml из разбитого проекта, которые были «конкретными приложениями». Как [<] AndroidApplication> true [<] / AndroidApplication>