it-swarm.com.de

Visual Studio 2015 - Xamarin - Android - Beim Abrufen von "resource.id" ist keine Definition für xxx enthalten, wenn ich versuche, etwas in der CS-Datei zu tun

Hinzufügen zusätzlicher Aktivität .cs und Layout axml mithilfe von Visual Studio 2015.

Ich bin sehr neu in der Xamarin- und Android-Entwicklung, habe aber seit einigen Jahren mit VB und jetzt mit C # gearbeitet. Ich habe eine einfache App für Android 4.2, die mit der Zeit immer komplizierter wird. Die einfache Angelegenheit ist, dass ich dem Projekt eine zusätzliche GpsAction.cs und das entsprechende Gps.axml-Layout hinzufügen möchte. Es scheint unmöglich, die richtige Kombinationssyntax zu finden, um dies zu erreichen. Ich habe eine mainActivity mit main.axml. In VS 2015 ist es sehr einfach, neues hinzuzufügen, aber ich bekomme immer wieder "resource.id" enthält keine Definition für "Ich würde mich sehr über Ihre Hilfe freuen

namespace AddCam
{
[Activity(Label = "GpsActivity")]
public class GpsActivity : Activity
{
    protected override void OnCreate(Bundle savedInstanceState)
    {
        base.OnCreate(savedInstanceState);
        SetContentView(Resource.Layout.GpsLayout);

        string c = FindViewById<TextView>(**Resource.Id.textView1**).Text;
        // Create your application here
    }
}
10

Für Personen, die immer noch mit diesem Problem konfrontiert sind, wird für die Standarddatei Build Action der Layoutdatei TransformFile festgelegt. Wählen Sie das Layout aus, und wechseln Sie zu den Layout-Eigenschaften. Wählen Sie im Eigenschaftenbereich AndroidResource als Build-Aktion aus. Bauen Sie Ihr Projekt sauber auf und es sollte funktionieren.

3
Ram Iyer

Ich habe das Textfeld "id" von "@ + id/imageView1" in "1" geändert, gespeichert, neu erstellt und wieder in "@ + id/imageView1" geändert. Das Problem wurde behoben. Ich möchte hinzufügen, dass dieses ganze Problem entstanden ist 

    1. Eine neue Aktivität und ein neues Layout hinzufügen. 
    2. Verwenden Sie bereits vorhandenen Code aus einer anderen App, die ich hatte. 
    3. Kopieren und Einfügen von Code aus der ursprünglichen App in die neue Aktivität und das neue Layout.

Alles ziemlich übliche Sachen, das eigentliche Problem schien es immer zu sein, neue Aktivitäten und Layouts zu einer Hauptaktivität hinzuzufügen. Es kann sehr kompliziert und ohne (mir bekannte) logische Art und Weise ein Problem mit Xamarin herunterlaufen. Verstehen Sie mich nicht falsch im Vergleich zu vor 10 Jahren (die letzte mobile App, die ich zu schreiben versuchte). Xamarin ist der Himmel. Gute Codier-Leute, wenn ich jetzt nur herausfinden kann, warum das Keyword "this" auf dem hinzugefügten Activity.cs-Fehler liegt

5

Fügen Sie einfach einen Namespace hinzu wie Android.Resource.Id - es ist für mich eine Lösung

2
Serhii Horun

Sie sollten einen festgelegten Wert für Android:id="@+id/button1" In axml der App hinzufügen, dann das Projekt neu erstellen und es erneut versuchen. wie folgtButton button = (Button)FindViewById(Resource.Id.button1);.

1
PL_Pathum

Was hat für mich funktioniert (Visual Studio 2017, Eröffnung eines alten Xamarin-Projekts):

  1. Obj- und Bin-Ordner löschen, erstellen. 
  2. Wenn Fehler auftreten, starten Sie Visual Studio neu (ich kenne den Schmerz).
  3. Bauen Sie erneut auf

Jetzt ist die Ressource sichtbar (falls Sie sie richtig definiert haben).

1
Exel Gamboa

Stellen Sie sicher, dass Ihre Axml-Datei korrekt formatiert ist, und erstellen Sie die Lösung neu. Wenn Sie weiterhin mit demselben Problem konfrontiert sind, entfernen Sie die Axml-Datei und fügen Sie sie erneut hinzu. Erstellen Sie dann die Lösung.

0
Saravanan

Mein Problem war, dass ich versuchte, das Xamarin Android-Projekt (nativ) mit dem Xamarin Live Player zu debuggen, die Verbindung über ein USB-Kabel herzustellen und mein Gerät für das Debugging auszuwählen, das Problem gelöst

0
mohas

Ich verstehe, dass dieses Problem sehr alt ist, aber ich bin auch in Visual Studio 2019 darauf gestoßen und habe eine Lösung gefunden.

Das Problem tritt für mich auf, wenn ich dem Layout ein Element hinzufüge und dann versuche, Code hinzuzufügen. Das Problem hängt anscheinend mit der Art und Weise zusammen, in der das Projekt erstellt wird.

Fügen Sie das Element zu Ihrem Layout hinzu und erstellen Sie dann Ihr Projekt bevor Sie zusätzlichen Code hinzufügen. Anscheinend wird Resource.Id erst dann mit zusätzlichen Mitgliedern aktualisiert, wenn es erstellt wurde, und der Versuch, auf das neue Mitglied im Code zu verweisen, bevor Resource.Id erkennt, dass das Projekt nicht erstellt werden kann.

0
Kyle Marino

Wie Maniacz sagte, musste ich im VS 2019 nur die XML-Erweiterung in axml ändern, um das Layout im Layoutordner unter Ressourcen zu ändern

Überprüfen Sie, ob diese Namespaces in Ihrer Layoutdatei fehlen. 

xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:app="http://schemas.Android.com/apk/res-auto"
xmlns:tools="http://schemas.Android.com/tools"
0
Rupam Das

Wenn Sie in Visual Studio 2019 ein neues Android Layout zum Projekt hinzufügen, wird es als XML-Datei hinzugefügt. Ich habe bereits einige zuvor erstellte Layouts im Ordner Resources/layout mit der Erweiterung .axml (nicht. xml) und bei mir hat das ändern der erweiterung .xml -> .axml geklappt.

0
maniacz

Die beste Lösung, die ich gefunden habe, ist die Erstellung einer Lösung. Wählen Sie Build solution aus dem Menü Build (oder Ctrl+Shift+B). Diese Aktion wird das Problem beheben.

0
Slackgate

Main.axml-Seite und Reset gelöscht und es funktioniert.

0
Arun Prasad E S