web-dev-qa-db-fra.com

Visual Studio 2015 - Xamarin - Android - Obtention de "resource.id ne contient pas de définition pour xxx" lorsque j'essaie de modifier le fichier .cs.

Ajout d'activités .cs et Layout axout supplémentaires à l'aide de Visual Studio 2015.

Je suis très nouveau dans le développement Xamarin et Android, mais je suis développeur depuis quelques années en utilisant VB et maintenant en C #. J'ai une application simple sur Android 4.2 qui devient de plus en plus compliquée à mesure que je progresse. Le simple problème que nous voulons, c'est que je veuille ajouter un fichier GpsAction.cs supplémentaire et la présentation Gps.axml correspondante au projet. Il semble impossible de trouver la bonne syntaxe de combinaison pour y parvenir. J'ai une mainActivity avec main.axml. Dans VS 2015, il est très simple d’ajouter de nouveaux éléments, mais je continue d’obtenir "resource.id ne contient pas de définition de". J'apprécierais vraiment votre aide pour cela.

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
RobertM - Orlando

Pour les personnes toujours confrontées à ce problème, la valeur Action de construction par défaut du fichier de présentation est définie sur TransformFile. Sélectionnez la disposition, accédez à Propriétés de la disposition et, dans le volet des propriétés, sélectionnez AndroidResource comme action de construction. Nettoyez votre projet et ça devrait marcher.

3
Ram Iyer

J'ai changé le champ de texte "id" de "@ + id/imageView1" en "1", je l'ai enregistré, reconstruit et je l'ai remplacé par "@ + id/imageView1". Je voudrais ajouter que tout ce problème vient de 

    1. Ajout d'une nouvelle activité et mise en page. 
    2. En utilisant du code préexistant, formez une autre application que j'avais. 
    3. Copier et coller du code de l'application d'origine vers la nouvelle activité et mise en page.

Tout ce qui est commun, le vrai problème semble toujours être d’ajouter de nouvelles activités et mises en page à une activité principale. Cela peut devenir très compliqué et sans aucun moyen logique (connu de moi) de résoudre un problème avec Xamarin. Ne vous méprenez pas par rapport à il y a 10 ans (la dernière application mobile que j'ai essayé d'écrire) Xamarin, c'est le paradis. Bon codeurs, maintenant, si je peux seulement comprendre pourquoi le mot-clé "this" est une erreur de sonnerie sur le fichier Activity.cs ajouté

5
RobertM - Orlando

Ajoutez simplement un espace de noms comme celui-ci Android.Resource.Id - c'est résolu pour moi

2
Serhii Horun

Vous devriez ajouter la valeur définie pourAndroid:id="@+id/button1" dans axml de l'application, puis reconstruire le projet et essayer à nouveau . Comme thisButton button = (Button)FindViewById(Resource.Id.button1);.

1
PL_Pathum

Qu'est-ce qui a fonctionné pour moi (Visual Studio 2017, ouverture d'un ancien projet Xamarin):

  1. Supprimer les dossiers obj et bin, construire. 
  2. En cas d'erreur, redémarrez Visual Studio (je connais la douleur).
  3. Reconstruire

Maintenant, la ressource sera visible (bien sûr, si vous l'avez définie correctement).

1
Exel Gamboa

Mon problème était que j'essayais de déboguer un projet Xamarin Android (natif) à l'aide de Xamarin Live Player, en me connectant à l'aide d'un câble USB et en sélectionnant mon périphérique pour le débogage, ce qui a résolu le problème.

0
mohas

Vérifiez si ces espaces de noms sont manquants dans votre fichier de présentation - 

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

La meilleure solution que j'ai trouvée est de construire la solution. Choisissez Build solution dans le menu Build (ou Ctrl+Shift+B). Cette action va résoudre le problème.

0
Slackgate

Effacé la page Main.axml et réinitialiser et cela fonctionne.

0
Arun Prasad E S