0

我想使用 Samsung Nexus S 的 NFC 功能从 NfcB 类型的卡读取数据。我能够识别卡。但是当我尝试使用 get 获取 NfcB 的对象时:

Tag tg=(Tag)nfcTag;
NfcB myTag = NfcB.get(tg);

我收到此错误:

错误/AndroidRuntime(808): java.lang.NoClassDefFoundError: android.nfc.tech.NfcB

如果我使用这种方法,我也会得到一个错误:

Parcelable nfcTag = intent.getParcelableExtra("android.nfc.extra.TAG");
Tag tag= (Tag)nfcTag;
tag.getTechList()

错误/AndroidRuntime(2498): java.lang.NoSuchMethodError: android.nfc.Tag.getTechList

该项目正确构建,但在运行时我收到这些错误。如果我能解决错误,我将能够读取数据。我熟悉 APDU 命令,但无法创建 NfcB 对象或 IsoDep 对象。其他一切都可以从这个 api 正常工作。

谁能告诉我代码是否有问题或者我需要使用其他方法或api。

提前致谢

4

1 回答 1

1

java.lang.NoClassDefFoundError 来自 javadocs:

Thrown if the Java Virtual Machine or a ClassLoader instance tries to load in the definition of a class (as part of a normal method call or as part of creating a new instance using the new expression) and no definition of the class could be found.

听起来好像找不到你的班级。检查类是否属于 jar 并且 jar 未添加到类路径中。

还尝试在 Android 清单文件中设置权限。见这里

于 2011-07-07T08:34:05.017 回答