【问题标题】:Unity - argument null exceptionunity - 参数空异常
【发布时间】:2017-04-12 03:05:48
【问题描述】:

嗨,我在简单登录时遇到问题(来自这里https://github.com/bdodroid/SimpleScripts-LoginSystem) 一切正常,但是当我想登录时,它说:

ArgumentNullException:参数不能为空。 参数名称:s System.Int32.Parse (System.String s) (在 /Users/builduser/buildslave/mono/build/mcs/class/corlib/System/Int32.cs:629) Login+c__Iterator13.MoveNext()(在Assets/xxx/Demo/Login.cs:118)

我的 Login.cs 中的第 118 行是:

    userID = int.Parse(parsedData[1]["ID"]);

请帮帮我,我有和这里一样的代码,所以你可以检查一下 https://github.com/bdodroid/SimpleScripts-LoginSystem

谢谢!

【问题讨论】:

  • 请向我们展示您的代码。错误消息将您指向有问题的行。
  • 查看 Assets/xxx/Demo/Login.cs:119 调试您的代码。将结果添加到您的问题中。
  • 您认为有错误的行是脚本中的第 118 行。
  • 是的,我在某处有一个空行,所以它在我的代码中是 119。在 github 中它是 118。我在我的问题中更正了它。谢谢
  • 哦,那 parsedData[][] 好像不包含“ID”索引,查看服务器发送的phpdata。

标签: c# php unity3d argumentnullexception


【解决方案1】:

Login.cs 中的第 119 行说:

responseText.GetComponent().text = "CONNECTED";

你得到的错误是null exception。这意味着responseText 没有Text 组件或responseText 从未在编辑器中分配游戏对象。 responseText 声明如下:

public GameObject responseText;

这意味着它将在 Unity 编辑器中序列化,您必须自己分配它。只需将 ResponseText 对象拖到编辑器中的字段即可。

【讨论】:

  • 抱歉不是第 119 行而是第 118 行
  • parsedData[1]["ID"] 为空。尝试使用 [0],有一条评论说存在错误。也许错误已修复,现在为 [0]。试试看!不应该是这种情况,因为“电子邮件”不为空。确保它有一个 ID。也许打印出 JSON 来看看它的样子。
  • 确实如此。问题是没有“ID”字段。在parsedData[1]["Email"]之前做一个Debug.Log(parsedData)
  • [ [ ], {"email":"xxx@gmail.com", "password":"81dc9bdb52d04dc20036dbd8313ed055", "secretQuestion":"si", "answer":"som"} ] UnityEngine.Debug:Log(Object) - 这是我从 debug.log 得到的
  • 没有ID。如果您不使用它,只需删除该行
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-17
  • 1970-01-01
  • 2013-03-21
  • 1970-01-01
相关资源
最近更新 更多