Question La tâche "GenerateJavaStubs" a échoué de manière inattendue


J'ai créé un nouveau projet dans Visual studio et seulement .xml fichier (mettre deux dispositions de trame) et quand je débogue le code j'ai une erreur, s'il vous plaît dites-moi la solution

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

14
2017-12-02 10:32


origine


Réponses:


Cela peut encore arriver si vous utilisez l'un des Plugins Xamarin qui utilisent CrossCurrentActivity, par exemple Plugins.Share et si vous avez la classe Application avec la balise [Application]. En effet, lors de l'installation de nuget, il génère une autre classe d'application avec la même balise et provoque l'échec de 'GenerateJavaStubs'.

La solution consiste simplement à supprimer l'une des classes d'application / les fusionner en une seule.


19
2017-07-13 07:43



Pour moi, cela s’est produit après l’installation du plug-in Xamarin Share (https://www.nuget.org/packages/Plugin.Share). Je mettais le thème de mon application Android dans son assemblyinfo.cs avec la ligne ci-dessous:

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

Supprimer simplement cette ligne a résolu le problème, puis j'ai défini le thème dans MainActivity comme vous le devriez vraiment.


5
2018-06-01 08:48



J'ai eu le même problème et l'erreur en détail disait quelque chose comme: "Le chemin est trop long. Le nom Bla bla ne peut pas dépasser 248 caractères et l’autre bla bla ne peut pas dépasser 260 caractères".

Et raccourcir le nom du projet a résolu mon problème.


4
2018-01-22 12:36



Si vous avez un constructeur dans la classe Activity, veuillez ajouter un constructeur par défaut. Ou vous pouvez supprimer les constructeurs en classe.

Ceci est l'ancien code source.

[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);
    }

    ...
}

Ceci est mis à jour le nouveau code source.

[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);
    }

    ...
}

2
2018-02-08 01:34



J'ai rencontré ce problème et j'ai reçu les mêmes messages d'erreur lors de la création de ma toute première application sur Visual Studio Professional 2015 (avec Xamarin). Aucune idée si cela pourrait être utile à quelqu'un d'autre, mais nous sommes tombés sur quelque chose qui a résolu le problème pour nous.

Dans MainActivity.cs, il y a un code par défaut lorsque vous ouvrez pour la première fois un projet "Blank App", mais nous avons supprimé une partie de ce code et l'avons copié / collé dessus. C'est à quoi cela ressemble initialement:

    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++); };
        }
    }
}

Pour y remédier: nous avons essayé de remettre ces lignes dans MainActivity.cs code:

[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);

Et puis nous avons exécuté le code et l'erreur a disparu. Probablement une erreur stupide, et ne résoudra pas toujours le problème, mais cela a fonctionné pour nous.


0
2017-08-08 19:44



J'ai eu ce problème parce que pour une raison quelconque, ma bibliothèque de classes Android a été changée en un type d'application Android - donc VS cherchait une classe d'application dans le projet.

La solution consistait à créer une bibliothèque de classes Android vierge et à comparer les fichiers de projet. J'ai supprimé les balises XML du projet endommagé qui étaient spécifiques à l'application. like [<] AndroidApplication> true [<] / AndroidApplication>


0
2017-07-08 08:23



J'ai eu ce problème parce que je mets des événements d'activité sous le bloc #region. Après avoir supprimé le bloc #region, tout fonctionne bien dans mon cas.


0
2018-03-19 11:22



J'ai eu ce problème en raison de la copie d'une bibliothèque Android sur un nouveau projet. Visual Studio m'a automatiquement fait un nouveau fichier de ressources, ce qui a entraîné des problèmes d'ambiguïté entre le fichier de ressources du projet 1 et le fichier du projet 2. Après avoir résolu ce problème, je n'avais plus d'erreur Java Stub. Je ne sais pas si c'était le correctif, mais je n'ai rien fait d'autre, alors il faut presque que ce soit un peu bizarre.


0
2018-05-14 09:34



Aucune de ces réponses n'a fini par fonctionner pour mon problème. Voici ce qui a fonctionné:

Dans votre Explorateur de solutions, accédez au projet Android, cliquez avec le bouton droit de la souris -> Propriétés -> Options Android -> Linker -> Lier et choisissez Sdk Assemblies Only. Assurez-vous également que dans le projet Android -> Propriétés -> Options Android -> Propriétés avancées -> Taille maximale du tas Java est définie sur 1G.

enter image description here


0
2018-06-07 15:07