2013-03-21 91 views

回答

6

因为该类由reflection加载,因此编译器不知道该类不存在(对于编译器,这是一个String,而不是类名)。当JVM尝试通过反射来加载该类时,它应该抛出一个ClassNotFoundException,表示没有这样的类。

+0

我不认为Android甚至会为一个BroadcastReceiver抛出一个CNFE ......这可能是_frustrating_。 – Sam 2013-03-21 16:22:48

+0

@Sam我编辑为“应该”而不是“will”:P Android是令人讨厌/令人沮丧的东西(检查Parcelable或Fragment wonderful world:P)**以及许多非常糟糕的API类。 – m0skit0 2013-03-21 16:28:31

+1

这个答案并没有真正回答这个问题。这种检查可以在编译时轻松完成,并且已经由许多'IDE'完成。 'Intellij IDEA'默认显示这种类型的错误,'Eclipse'允许你运行'Android Lint'(右键点击项目 - > Android Tools - > Run Lint),并找到这个错误。 – 2013-03-21 16:52:22