How can Android project compile when imported class is missing in SDK?

Viewed 1639

OK, perhaps it is very simple, but I just can not figure it out right now.

I have imported google sample project Card Reader in Android Studio 1.5.1, it compiles at compileSdkVerison 23, it works on my Mobile.

Then I walked through the SDK while came to source code to android.nfc.tech.BasicTagTechnology, I found TransceiveResult inside android.nfc.tech.BasicTagTechnology#transceive couldn't not be resolved then I found the class TransceiveResult is missing in my D:\Android\sdk\platforms\android-23\android.jar, but presents in Android source code here D:\Android\sdk\sources\android-23\android\nfc\TransceiveResult.java then I realized it could be hidden from public, not exported, actually it is

/**
 * Class used to pipe transceive result from the NFC service.
 *
 * @hide
 */

public final class TransceiveResult implements Parcelable

Then I have done some random things, after I have sync the project, clean and rebuild, invalidate caches / restarted, still not able to resolve TransceiveResult by the way, I am wondering since the symbol has been lost in SDK, how can the project compile smoothly?

EDIT for I finally Aha

We call android.nfc.tech.BasicTagTechnology#transceive in our code rather than TransceiveResult, in the compile-time we no need to resolve TransceiveResult, we only need to resolve android.nfc.tech.BasicTagTechnology#transceive which is referenced in our code, I was lost at that moment.

1 Answers
Related