Visual Studio 2015-Xamarin-Android-получение " ресурса.id не содержит определения для xxx", когда я пытаюсь что-либо сделать.cs файл

Добавление Дополнительной Активности .cs и макет axml с помощью Visual Studio 2015.

Я очень новичок в разработке Xamarin и Andorid, но был разработчиком в течение нескольких лет, используя vb, а теперь c#. У меня есть простое приложение на Android 4.2, которое становится все сложнее, когда я иду вперед. Простое дело, что я хочу добавить дополнительный GpsAction.cs и соответствующий Gps.макет axml для проекта. Кажется, невозможно найти правильная компинация sytax для достижения этого. У меня есть mainActivity с main.axml. В VS 2015 его очень просто добавить новый, но я продолжаю получать "" ресурс.id не содержит определения для" Я был бы очень признателен за вашу помощь в этом

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
    }
}

9 ответов


для людей, которые все еще сталкиваются с этой проблемой, по умолчанию Создать Действие файла макета будет установлено значение TransformFile. Выберите макет, перейдите к свойствам макета и на панели Свойства выберите AndroidResource как действие сборки. Clean создайте свой проект, и он должен работать.


Я изменил текстовое поле "id" с "@+id/imageView1" на "1", сохранил, перестроил и изменил его обратно на "@+id/imageView1 " он исправил его. Я хотел бы добавить, что вся эта проблема возникла из

    1. добавление нового действия и макета.
    2. используя существующий код формы другого приложения, которое у меня было.
    3. копирование и вставка кода из исходного приложения в новое действие и макет.

все довольно распространенным материал, реальная проблема, казалось, всегда добавляла любые новые действия и макеты к основной деятельности. Он может стать очень запутанным и без (известного мне) логического способа запуска проблемы с Xamarin. Не поймите меня неправильно по сравнению с 10 лет назад (последнее мобильное приложение, которое я пытался написать) Xamarin-это рай. Хорошие люди кодирования, теперь, если я могу понять, почему Ключевое слово"этой " является кольцом ошибок при добавленной активности.cs


просто добавьте пространство имен, как этот Android.Ресурс.Id-это решение для меня


вы должны добавить значение set дляandroid:id="@+id/button1" в axml приложения, затем перестроить проект и повторите попытку. такойButton button = (Button)FindViewById(Resource.Id.button1); .


Что сработало для меня (Visual Studio 2017, открытие старого проекта Xamarin):

  1. удалить папки obj и bin, построить.
  2. Если ошибки, перезапустите Visual Studio (я знаю боль).
  3. снова построить

теперь ресурс будет виден (конечно, если вы его правильно определили).


Главная Очищается.страница axml и сброс, и она работает.


лучшее решение, которое я нашел, - это построить решение. Выберите построить решение из меню сборки (или Ctrl+Shift+B). Это действие решит проблему.


моя проблема заключалась в том, что я пытался отладить проект Xamarin Android (родной) с помощью Xamarin Live Player, подключившись с помощью USB-кабеля и выбрав свое устройство для отладки, решил проблему


Регистрация ресурса.Файл класса конструктора. Будет такой класс, как public partial class Id. Там записываются целочисленные идентификаторы элементов управления. Используйте их вместо ресурса.Id