0

我想使用Samsung Nexus S的NFC功能從NfcB類型卡讀取數據。 我能夠識別該卡。但是,當我嘗試使用get獲得NfcB的對象:在android nfc中從NFC Type B(ISO 14443-3B)讀取數據;獲取NoClassDefFoundError

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。

感謝事先從的javadoc

回答

1

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沒有添加到classpath中。

也嘗試在Android清單文件中設置權限。 見here

+0

感謝您的努力。但其他一切工作正常,包含jar文件,權限被定義。從android.nfc包使用的其他類正常工作。 – Sumit