我哈瓦接收为什么拼写错误的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