从android nfc中的NFC Type B(ISO 14443-3B)读取数据;得到NoClassDefFoundError

时间:2011-07-07 07:40:09

标签: android runtime-error noclassdeffounderror nfc nosuchmethoderror

我想使用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。

提前致谢

1 个答案:

答案 0 :(得分:1)

来自javadocs的

java.lang.NoClassDefFoundError:

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清单文件中设置权限。 请参阅here