Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/182.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# NullReferenceException仅在unity中的android中构建和运行时发生_C#_Android_Unity3d_Location_Location Services - Fatal编程技术网

C# NullReferenceException仅在unity中的android中构建和运行时发生

C# NullReferenceException仅在unity中的android中构建和运行时发生,c#,android,unity3d,location,location-services,C#,Android,Unity3d,Location,Location Services,因此,我有以下代码: LongLat[0] = Convert.ToDouble(Input.location.lastData.latitude); LongLat[1] = Convert.ToDouble(Input.location.lastData.longitude); if (Input.location.status == LocationServiceStatus.Running) { print("Running"); } print(LongLat[0]); 我将Long

因此,我有以下代码:

LongLat[0] = Convert.ToDouble(Input.location.lastData.latitude);
LongLat[1] = Convert.ToDouble(Input.location.lastData.longitude);
if (Input.location.status == LocationServiceStatus.Running) { print("Running"); }
print(LongLat[0]);
我将LongLat定义为一个公共数组:

public double[] LongLat = new double[2];
当我在unity编辑器中运行它时,我没有任何问题(稍后我重新定义了LongLat,因为显然pc没有GPS)。但当我在android上构建和运行时,我在第四行print(LongLat[0])上得到一个NullReferenceException,我不清楚为什么会发生这种情况

定位服务正在运行

这是亚洲开发银行的输出

07-02 23:48:37.409 20555 20570 I Unity   : NullReferenceException: Object reference not set to an instance of an object
07-02 23:48:37.409 20555 20570 I Unity   :   at Location.GetLocation () [0x00065] in F:\Dropbox\Dropbox\UnityGames\Tagger\Assets\Location.cs:205
07-02 23:48:37.409 20555 20570 I Unity   :   at Location+<Start>c__Iterator0.MoveNext () [0x00233] in F:\Dropbox\Dropbox\UnityGames\Tagger\Assets\Location.cs:82
07-02 23:48:37.409 20555 20570 I Unity   :   at UnityEngine.SetupCoroutine.InvokeMoveNext (IEnumerator enumerator, IntPtr returnValueAddress) [0x00028] in /Users/builduser/buildslave/unity/build/Runtime/Export/Coroutines.cs:17
和使用:

LongLat[0] = 55.953251f; 
LongLat[1] = 3.188267f;

它工作得很好。

您是否初始化了位置服务,如?

所以我设法解决了这个问题,没有将Input.location.lastData放入数组中,而是直接使用它


我仍然不知道为什么放入数组会如此麻烦。

发布带有错误标志的logcat。我将其添加到原始帖子中,谢谢。空引用表示它试图访问不存在的内容。您可能忘了在编辑器中拖动某些内容,或者您领先了一步,并且有一些未注释的内容仍然应该注释。你的代码使用了一些不存在的东西。它可以在Unity编辑器中工作,但android编译器肯定出了一些奇怪的问题。是什么让你认为问题出在
print(LongLat[0])
?我真的很怀疑。我认为你应该评论这句话。你会发现这个问题仍然存在。
LongLat[0] = 55.953251f; 
LongLat[1] = 3.188267f;