I mean, the class does exist and it's just a null object of it there.
NfcAdapter.CreateNdefMessageCallback
was added in API Level 14. Hence, it is not possible for Dalvik on older devices to load it successfully, as it will fail to resolve that interface.
Now, in principle, Dalvik should never try to load your NfcHandler
handler class on Gingerbread devices, if the code snippet you show above is the only place that you are referring to it, or if all other occurrences have the same if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH)
Java version guard block defending it.
What it suggests is that on these devices, Build.VERSION.SDK_INT
is not returning the expected value, either because of a firmware bug or, conceivably, something some rooted device user did to tweak their environment.