xamarin 表单错误 Droid.Resource 不包含字符串的定义

Posted

技术标签:

【中文标题】xamarin 表单错误 Droid.Resource 不包含字符串的定义【英文标题】:xamarin forms error Droid.Resource does not contain a definition for string 【发布时间】:2016-03-06 16:35:27 【问题描述】:

这就是问题所在 - “字符串”下的红线。

我正在开发一个 xamarin 表单应用程序,并且我正在使用 PCL 存储插件。我认为这是导致问题的原因,我不知道如何解决它。问题出现在我的 android 解决方案中。

public static void UpdateIdValues()

    global::PCLStorage.Resource.String.ApplicationName = global::XamarinClients.Droid.Resource.String.ApplicationName;
    global::PCLStorage.Resource.String.Hello = global::XamarinClients.Droid.Resource.String.Hello;

我收到此错误:

错误 6“XamarinClients.Droid.Resource”不包含定义 对于“字符串”pathtomyapplication\Resources\Resource.Designer.cs

有人遇到过这个问题吗?

【问题讨论】:

这很可能是在生成资源文件时出错。您使用的是 Xamarin Studio 还是 Visual Studio? Xamarin Studio for Mac 让我很头疼 我正在使用视觉工作室。我将这些行注释掉了,但我真的很想知道错误的原因是什么.. 【参考方案1】:

如果您查看 android 本地化文档,它会提到将应用程序资源字符串存储在 xml 文件中。显然,android Xamarin.Forms Resource.Designer.cs 中有一些硬编码值。 要在 values 下的资源文件夹中修复它,请添加一个名为 String.xml 的 XML 文件并将其放入:

<?xml version="1.0" encoding="utf-8"?>
<resources>
  <string name="ApplicationName">ApplicationName</string>
  <string name="Hello">Hello</string>
</resources>

【讨论】:

另外,将strings.xmlBuild Action 设置为AndroidResource【参考方案2】:

我知道这是一篇旧帖子,但我仍然在 VS2019 中收到此错误。 这通常发生在我懒惰并在 strings.xml 中按 Ctrl-D 定义一个字符串,然后将字符串名称和内容重新键入新字符串时。

程序构建良好,但即使在应用上述任何建议后,我仍然会收到不包含定义的错误。

我的解决方案是复制并删除我刚刚创建的行,然后将其粘贴到 strings.xml 中的其他位置。然后错误立即消失。

如果我将菜单项添加到 menu_main.xml,也会发生这种情况。该项目构建良好,但我仍然在引用它的代码中的菜单项 id 下看到摇摆不定的红线。返回 menu_main.xml,复制该项目,将其删除,然后再次粘贴。红线消失。

【讨论】:

【参考方案3】:

通常,这可以通过简单地清理项目然后选择重建来解决。

【讨论】:

以上是关于xamarin 表单错误 Droid.Resource 不包含字符串的定义的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin 表单中的注册项目错误

Xamarin 表单 - Java.Interop.lz4 访问被拒绝错误

Xamarin表单 - 从错误的线程访问的域

xamarin 表单错误 Droid.Resource 不包含字符串的定义

使用新的 Xamarin 表单构建时出现“XamlCTask”任务意外失败”错误

对经度和纬度使用 GeoLocator 在 Xamarin 表单中给出以下错误