【问题标题】:Cannot resolve symbol 'Void'无法解析符号“无效”
【发布时间】:2014-01-09 10:36:40
【问题描述】:

在我班的负责人(我从别人那里接手一个项目),我有以下几点:

using Java.Util;
using Object = Java.Lang.Object;
using Void = Java.Lang.Void;

Void,显示为红色,带有“无法解析符号'Void'”并且看不到我可能遗漏的内容。

我检查了这台电脑的来源(应用程序确实建立在那个电脑上)并安装了相同的(是的,我看到了,更新的,但专门安装了“相同”的项目)Java 项目:

  • Java 7 更新 45
  • Java 6 更新 31
  • Java SE 开发工具包 6 更新 31

这没有任何改变。

我检查了项目的“参考”分支,一切都显示相同(事实上,我在任何地方都看不到对 Java 的特定参考)

如有任何帮助,我们将不胜感激。

请理解我不想更改代码;只是为了让代码(按原样)编译而不会出错。

[更新]

当我输入 Java.Lang. 时,智能感知不会在下拉列表中显示 Void

[进一步更新]

该项目与平板电脑的开发相关;我没有安装一些开发软件 - 安装这些已经解决了这个问题,我只能假设 Java 命名空间隐藏在软件中。虽然回复中没有具体的答案,但大多数 cmet 确实帮助引导我朝着正确的方向前进。

【问题讨论】:

  • @SergeyBerezovskiy 因为它 C#。
  • 'using' 是 C# 关键字
  • Void 在 Java 中不是一个东西吗?真的吗?
  • @SeanAnderson 最好删除 Java 标记,因为这是特定于 C# 开发环境的,而使用 Java 标记只会引起 Java 专家的注意(和错误的建议!)。您还应该命名将 Java“导入”到 C# 项目中的技术。
  • 您不能使用 C# 项目中的 Java 类,至少不能直接使用...您使用的是 IKVM.NET 之类的东西吗?

标签: c# xamarin.android


【解决方案1】:

C# 项目使用 Java 位的方式有多种,

根据您粘贴的片段,我认为您可能正在 Visual Studio 中打开一个 Xamarin.Android 项目,因为 using 子句匹配,

http://androidapi.xamarin.com/?link=N%3aJava.Util

http://androidapi.xamarin.com/?link=T%3aJava.Lang.Void

http://androidapi.xamarin.com/?link=T%3aJava.Lang.Object

因此,您需要在这台机器上完全安装 Xamarin.Android。你所拥有的(JRE 和 JDK)显然是不够的。

dot42 没有Java.Lang.VoidJava.Lang.Objecthttp://docs.dot42.com/Reference/NS.Java.Lang

【讨论】:

    【解决方案2】:

    【讨论】:

    • 这意味着代码的改变;正如所评论的,这不是关于更正代码,而是关于让应用程序编译(它正在另一台 PC 上执行)
    【解决方案3】:

    失败:

    using Java.Lang.Void;
    import Java.Lang.Void;
    

    成功:

    import java.lang.Void;
    

    【讨论】:

      【解决方案4】:

      您必须使用导入而不是使用。

      import Java.Util.*;
      Object blah = new Java.Lang.Object;
      

      如果您想创建一个null 的对象,请执行以下操作:

      Object obj = new Object();
      

      如果要添加数据集,则等于数字等数据。

      obj = 7;
      

      【讨论】:

      • 正如 cmets 中所讨论的,这不是 Java。
      • 但没有人将其作为回应。
      • 是的,因为您的回答和“它不是 Java”都不能解决这个问题。这是关于让 C# 代码编译,那些使用指令的代码。
      • 在我看来,他好像在尝试用 java 编程。他帖子中的所有内容都与java有关。如果你认为他试图用 C# 编程,那你就错了。
      • 我可以确认(根据我原始帖子中的 [进一步更新];通过安装一些缺少的组件解决了这个问题。为了澄清 commnets:+grexter89 是正确的,它是关于获取 C#要编译的代码(无需更改代码)和 +CrazyJohnny 它不是用 Java 编写的代码。
      猜你喜欢
      • 2018-11-11
      • 1970-01-01
      • 1970-01-01
      • 2016-12-31
      • 2021-02-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多