web-dev-qa-db-de.com

Die Task "GenerateJavaStubs" ist unerwartet fehlgeschlagen

Ich habe ein neues Projekt in Visual Studio erstellt und nur in .xml-Datei (zwei Frame-Layouts) gesetzt. Wenn ich den Code debugge, habe ich einen Fehler. Bitte sagen Sie mir die Lösung

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
15
user4689094

Dies kann immer noch passieren, wenn Sie eines der Xamarin Plugins verwenden, das CrossCurrentActivity verwendet, beispielsweise Plugins.Share und wenn Sie über eine Application-Klasse mit dem Tag [Application] verfügen. Dies liegt daran, dass bei der Nuget-Installation eine andere Application-Klasse mit demselben Tag generiert wird, die den 'GenerateJavaStubs'-Fehler verursacht.

Die Lösung besteht einfach darin, eine der Anwendungsklassen zu löschen oder zu einer zusammenzuführen.

19
Edgar.A

Ich hatte das gleiche Problem und der Fehler im Detail sagte etwas wie; Msgstr "Pfad ist zu lang. Bla bla Name darf 248 Zeichen nicht überschreiten und der andere Bla bla darf 260 Zeichen nicht überschreiten." 

Und die Verkürzung des Projektnamens löste mein Problem.

5
hhk

Für mich ist dies nach der Installation des Xamarin Share Plugins ( https://www.nuget.org/packages/Plugin.Share ) der Fall. Ich habe das Thema meiner Android-App in der assemblyinfo.cs mit der folgenden Zeile festgelegt:

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

Durch das Entfernen dieser Zeile wurde das Problem behoben, und ich habe das Thema dann in MainActivity festgelegt, wie Sie es eigentlich sollten.

5
DaveU

Wenn Sie einen Konstruktor in der Activity-Klasse haben, fügen Sie bitte den Standardkonstruktor ..__ hinzu, oder Sie können Konstruktoren in der Klasse entfernen.

Dies ist alter Quellcode.

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

    ...
}

Dies ist neuer Quellcode.

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

    ...
}
3
Alex.Wang

Keine dieser Antworten endete für meine Ausgabe. Folgendes funktionierte:

Gehen Sie im Projektmappen-Explorer zum Android-Projekt, klicken Sie mit der rechten Maustaste -> Eigenschaften -> Android-Optionen -> Linker -> Verknüpfen, und wählen Sie Sdk Assemblies Only . Vergewissern Sie sich auch im Android-Projekt -> Eigenschaften - > Android-Optionen -> Erweiterte Eigenschaften -> Die maximale Heap-Größe von Java ist auf 1 G eingestellt.

 enter image description here

0
Codrut

Ich hatte dieses Problem, weil aus meiner Android-Klassenbibliothek ein Android-Anwendungstyp wurde - VS hat also im Projekt nach der Anwendungsklasse gesucht.

Die Lösung bestand darin, eine leere Android-Klassenbibliothek zu erstellen und Projektdateien zu vergleichen. Ich entfernte alle XML-Tags aus dem defekten Projekt, die für die Anwendung spezifisch waren

0
InquisitorJax

Dieses Problem ist aufgetreten, und ich habe beim Erstellen meiner ersten Anwendung auf Visual Studio Professional 2015 (mit Xamarin) die gleichen Fehlermeldungen erhalten. Keine Ahnung, ob dies für irgendjemand anderen von Nutzen ist, aber wir sind über etwas gestolpert, das das Problem für uns gelöst hat.

In MainActivity.cs gibt es einen Standardcode, wenn Sie ein "Blank App" -Projekt zum ersten Mal öffnen, aber ein Teil des Codes wurde gelöscht und darüber kopiert/eingefügt. So sieht es zunächst aus:

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

Um es zu beheben: Wir haben versucht, diese Zeilen wieder in MainActivity.cs-Code zu setzen:

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

Und dann liefen wir den Code und der Fehler ging weg. Wahrscheinlich nur ein dummer Fehler und wird das Problem nicht immer lösen, aber es hat für uns funktioniert.

0
Rebecca Mendez

Ich habe diesen Fehler beim Ausführen eines Release-Builds erhalten

The "GenerateJavaStubs" task failed unexpectedly.
Nullreference Exception

Restarted VS hat es geklärt.

0
hogarth45

Ich hatte dieses Problem, weil ich Aktivitätsereignisse unter # region blocke. Nachdem ich #region block entfernt habe, funktioniert in meinem Fall alles gut.

0
Ravi Anand

Ich hatte dieses Problem, weil ich eine Android-Bibliothek in ein neues Projekt kopiert habe. Visual Studio hat mich automatisch zu einer neuen Ressourcendatei gemacht, was zu Mehrdeutigkeitsproblemen zwischen der Ressourcendatei von Projekt 1 und der Datei von Projekt 2 führte. Nach der Lösung dieses Problems hatte ich keinen Java Stub-Fehler mehr. Ich weiß nicht, ob dies der Fix war, aber ich habe nichts anderes gemacht, also muss es fast sein, obwohl es ein bisschen komisch ist.

0
Dahinda