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

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マニフェストファイルで権限を設定してみてください。ここを参照してください。

于 2011-07-07T08:34:05.017 に答える