所以我下面的代碼:的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;
它工作正常。
發佈帶有錯誤標誌的logcat。 –
我將它添加到原來的帖子,謝謝。 –
空引用意味着它試圖訪問不存在的內容。你或者忘了在編輯器中拖動某些東西,或者你已經領先一步,並且還有一些未評論的內容應該仍然有所評論。你的代碼正在使用那些不存在的東西。 –