我无法从我的资源文件中获取字符串,但找不到可行的解决方案。我曾与官方Xamarin Tutorial和example App合作过。 这是一个xamarin表单项目,我希望该应用程序以德语/英语显示。 ios部分已经可以使用了。
到目前为止我所拥有的:
以下文件夹结构中的我的语言文件:
资源>值>的strings.xml
资源> 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>
Strings.xml文件的属性“Build Action”设置为“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'的类型初始值设定项引发了异常。 ---&GT; System.Reflection.TargetInvocationException:调用目标抛出了异常。 ---&GT; Android.Content.Res.Resources + NotFoundException:字符串资源ID#0x7f070040
到目前为止我做了什么:
我不知道接下来该做什么? 谢谢你的帮助!
修改 如果它有用,Visual Studio会在此部分向我展示“Resource.String。 barcodescanner_toptext ”以下消息:“不明确的引用:int barcodescanner_toptext(在类String中)int barcodescanner_toptext(在类String中)匹配”