it-swarm.com.ru

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

Добавление дополнительных действий .cs и макета axml с использованием Visual Studio 2015.

Я очень новичок в разработке Xamarin и Android, но несколько лет работал разработчиком, используя VB, а теперь и C #. У меня есть простое приложение на Android 4.2, которое становится все сложнее по мере продвижения вперед. Простое дело в том, что я хочу добавить в проект дополнительный GpsAction.cs и соответствующий макет Gps.axml. Кажется невозможным найти правильный синтаксис комбинации для достижения этой цели. У меня есть mainActivity с main.axml. В VS 2015 очень просто добавлять новые, но я продолжаю получать "resource.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
    }
}
10
RobertM - Orlando

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

3
Ram Iyer

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

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

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

5
RobertM - Orlando

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

2
Serhii Horun

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

1
PL_Pathum

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

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

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

1
Exel Gamboa

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

0
mohas

Проверьте, не отсутствуют ли эти пространства имен в файле макета - 

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

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

0
Slackgate

Очистил страницу Main.axml и сбросил, и она работает.

0
Arun Prasad E S