好吧,也许这很简单,但我现在想不通。
我在 Android Studio 1.5.1 中导入了谷歌示例项目读卡器,它在 compileSdkVerison 23 编译,它可以在我的手机上运行。
然后我在来到源代码时浏览了SDK android.nfc.tech.BasicTagTechnology
,我发现TransceiveResult
里面android.nfc.tech.BasicTagTechnology#transceive
无法解析然后我发现我的类TransceiveResult
中缺少该类D:\Android\sdk\platforms\android-23\android.jar
,但是在Android源代码中出现D:\Android\sdk\sources\android-23\android\nfc\TransceiveResult.java
然后我意识到它可以对公共隐藏,而不是导出的,其实是
/**
* Class used to pipe transceive result from the NFC service.
*
* @hide
*/
public final class TransceiveResult implements Parcelable
然后我做了一些随机的事情,在我同步项目后,清理和重建,使缓存无效/重新启动,顺便还是无法解决TransceiveResult
,我想知道SDK中的符号已经丢失,项目如何编译顺利?
编辑我终于啊哈
我们调用android.nfc.tech.BasicTagTechnology#transceive
我们的代码而不是TransceiveResult
,在编译时我们不需要解析TransceiveResult
,我们只需要解析android.nfc.tech.BasicTagTechnology#transceive
我们代码中引用的那个,那一刻我迷失了。