从 android nfc 中的 NFC Type B (ISO 14443-3B) 读取数据;获取 NoClassDefFoundError
我想使用 Samsung Nexus S 的 NFC 功能从 NfcB 型卡读取数据。 我能够识别该卡。但是当我尝试使用 get 获取 NfcB 对象时:
Tag tg=(Tag)nfcTag;
NfcB myTag = NfcB.get(tg);
我收到此错误:
ERROR/AndroidRuntime(808): java.lang.NoClassDefFoundError: android.nfc.tech.NfcB
如果使用此方法,我也会收到错误:
Parcelable nfcTag = intent.getParcelableExtra("android.nfc.extra.TAG");
Tag tag= (Tag)nfcTag;
tag.getTechList()
ERROR /AndroidRuntime(2498): java.lang.NoSuchMethodError: android.nfc.Tag.getTechList
项目构建正确,但在运行时我得到这些 错误。 如果我能解决错误,我将能够读取数据。我熟悉 APDU 命令,但无法创建 NfcB 对象或 IsoDep 对象。通过这个 api,其他一切都可以正常工作。
谁能告诉我代码是否有问题或者我需要使用其他方法或api。
提前致谢
I want to read data from an NfcB type card using the NFC feature of Samsung Nexus S.
I am able to recognize the card. But when I try to get an object of NfcB using get:
Tag tg=(Tag)nfcTag;
NfcB myTag = NfcB.get(tg);
I get this error:
ERROR/AndroidRuntime(808): java.lang.NoClassDefFoundError: android.nfc.tech.NfcB
Also I get an error if I use this method:
Parcelable nfcTag = intent.getParcelableExtra("android.nfc.extra.TAG");
Tag tag= (Tag)nfcTag;
tag.getTechList()
ERROR/AndroidRuntime(2498): java.lang.NoSuchMethodError: android.nfc.Tag.getTechList
The project builds correctly but at run time I get these error.
If I can resolve the error I will be able to read the data. I am familiar with the APDU commands but I am not able to create the NfcB object or IsoDep object. Everything else works fine from this api.
Can anybody tell me if there is something wrong with the code or I need to use some other methods or api.
Thanks in advance
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
来自 javadocs 的 java.lang.NoClassDefFoundError:
如果 Java 虚拟机或 ClassLoader 实例尝试加载类的定义(作为正常方法调用的一部分或作为使用 new 表达式创建新实例的一部分),则抛出此错误)并且找不到该类的定义。
听起来好像找不到您的类。检查类是否属于 jar 并且 jar 未添加到类路径中。
还可以尝试在 Android 清单文件中设置权限。
请参阅此处。
java.lang.NoClassDefFoundError from 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.
Sounds like it can't find your class. Check if class belongs to a jar and jar was not added into classpath.
Also try to set permissions in the Android manifest file.
See here.