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
}
}
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.
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
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
Fügen Sie einfach einen Namespace hinzu wie Android.Resource.Id - es ist für mich eine Lösung
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);
.
Was hat für mich funktioniert (Visual Studio 2017, Eröffnung eines alten Xamarin-Projekts):
Jetzt ist die Ressource sichtbar (falls Sie sie richtig definiert haben).
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.
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
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.
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"
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.
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.
Main.axml-Seite und Reset gelöscht und es funktioniert.