2017-07-02 45 views
0

所以我下面的代碼:的NullReferenceException當

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,因爲顯然這臺電腦沒有GPS)。但是當我在android上構建並運行時,我在第四行print(LongLat [0])得到一個NullReferenceException,我不明白爲什麼會發生這種情況。

位置服務正在運行。

這裏是從adb輸出。

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] = Input.location.lastData.latitude; 
LongLat[1] = Input.location.lastData.longitude; 

及用途:

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

它工作正常。

+0

發佈帶有錯誤標誌的logcat。 –

+0

我將它添加到原來的帖子,謝謝。 –

+0

空引用意味着它試圖訪問不存在的內容。你或者忘了在編輯器中拖動某些東西,或者你已經領先一步,並且還有一些未評論的內容應該仍然有所評論。你的代碼正在使用那些不存在的東西。 –

回答

0

您初始化here這樣的位置服務嗎?

0

所以我設法通過不將Input.location.lastData放入一個數組來解決,而是直接使用它。我還不知道爲什麼放入數組非常麻煩。

相關問題