我哈瓦接收爲什麼拼寫錯誤的android:name沒有警告或錯誤?
<receiver android:name=".AlarmReceiver" />
但接收器的類名AlarmReciver(拼寫錯誤)
爲什麼Android的SDK顯示此錯誤或顯示該運行的時候?
我哈瓦接收爲什麼拼寫錯誤的android:name沒有警告或錯誤?
<receiver android:name=".AlarmReceiver" />
但接收器的類名AlarmReciver(拼寫錯誤)
爲什麼Android的SDK顯示此錯誤或顯示該運行的時候?
因爲該類由reflection加載,因此編譯器不知道該類不存在(對於編譯器,這是一個String
,而不是類名)。當JVM嘗試通過反射來加載該類時,它應該拋出一個ClassNotFoundException
,表示沒有這樣的類。
我不認爲Android甚至會爲一個BroadcastReceiver拋出一個CNFE ......這可能是_frustrating_。 – Sam 2013-03-21 16:22:48
@Sam我編輯爲「應該」而不是「will」:P Android是令人討厭/令人沮喪的東西(檢查Parcelable或Fragment wonderful world:P)**以及許多非常糟糕的API類。 – m0skit0 2013-03-21 16:28:31
這個答案並沒有真正回答這個問題。這種檢查可以在編譯時輕鬆完成,並且已經由許多'IDE'完成。 'Intellij IDEA'默認顯示這種類型的錯誤,'Eclipse'允許你運行'Android Lint'(右鍵點擊項目 - > Android Tools - > Run Lint),並找到這個錯誤。 – 2013-03-21 16:52:22
爲什麼這個封閉?這是一個很好的問題。 – funkybro 2015-11-06 22:32:17