Как правильно получить доступ к строковым ресурсам из strings.xml в ресурсах Xamarin android? - PullRequest
0 голосов
/ 16 мая 2018

Я не могу получить строку из моего файла ресурсов и не могу найти работающее решение.Я работал с официальным Xamarin Tutorial и примером приложения .Это проект форм xamarin, и я хочу, чтобы приложение отображалось на немецком / английском.Часть ios уже работает.

Что у меня есть:

Мои языковые файлы в следующей структуре папок:

Ресурсы> Значения> Strings.xml

Resources> values-de> Strings.xml

Strings.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
  <string name="barcodescanner_toptext">QR-Code Scanner</string>
  <string name="barcodescanner_bottomtext">Please scan QR-Code.</string>
  <string name="barcodescanner_cancelbuttontext">Cancel</string>
  <string name="barcodescanner_flashbuttontext">Flash</string>
  <string name="barcodescanner_errortext">Scan canceled</string>
</resources>

Свойство "Build Action" файлов Strings.xml установлено в "AndroidResource".В Resource.Designer.cs строки видны.

// aapt resource value: 0x7f070041
public const int barcodescanner_bottomtext = 2131165249;

// aapt resource value: 0x7f070042
public const int barcodescanner_cancelbuttontext = 2131165250;

// aapt resource value: 0x7f070044
public const int barcodescanner_errortext = 2131165252;

// aapt resource value: 0x7f070043
public const int barcodescanner_flashbuttontext = 2131165251;

// aapt resource value: 0x7f070040
public const int barcodescanner_toptext = 2131165248;

Внутри моего файла Scanner.cs я делаю вызов, как в учебнике:

BarcodeScanner.TopText = Resources.System.GetText(Resource.String.barcodescanner_toptext);

Я должен использовать".System."потому что нет "GetText" непосредственно на ресурсах.Если я нажму "."после Resource.String я получаю все мои строки ресурсов для выбора.Но если я запускаю приложение на Android, я получаю следующую ошибку:

Нет известного пакета при получении значения для номера ресурса 0x7f070040

System.TypeInitializationException: инициализатор типа для 'xyz.ViewModels.MainViewModel 'сгенерировал исключение.---> System.Reflection.TargetInvocationException: исключение было сгенерировано целью вызова.---> Android.Content.Res.Resources + NotFoundException: строковый идентификатор ресурса # 0x7f070040

Что я сделал до сих пор:

  • очистил и перестроил решение
  • удалил папки obj и bin
  • перезапустил все, включая мой компьютер
  • удалил приложение со смартфона

Я не знаю чтоЯ должен делать дальше?Спасибо за вашу помощь!

РЕДАКТИРОВАТЬ: Если это что-то полезное, Visual Studio показывает мне на этой части «Resource.String. barcodescanner_toptext » следующее сообщение: «Неоднозначныйссылка: int barcodescanner_toptext (в классе String) int barcodescanner_toptext (в классе String) соответствует "

...