1

mifareカードを読み取るためのアプリケーションを作成していますが、APDUを渡すと、エミュレーター「java.lang.nullpointerexception」でエラーが発生します。その後、ISO14443_CARDを正常に検出し、次のようにAPDUを渡します。

if (tp.hasTargetType(TargetType.ISO14443_CARD)){
  form.append("Target is ISO14443_CARD\n");

 try { 
            static byte[]   APDU_AUTH1 = { (byte) 0xff, (byte) 0x86, (byte) 0x00, (byte) 0x00, (byte) 0x05,(byte)0x01,(byte)0x00,(byte)0xfc,(byte)0x60,(byte)0x00};
            static byte[]   STATUS_BYTE = {(byte)0x90,(byte)0x00}; 
        if(STATUS_BYTE == iso14443.exchangeData(APDU_LOAD_KEY))
        {
         String value1 = new String("Hai!");
         textfield1.setString(value1);
         form.append(textfield1);

        }
        else
        {
            String value1 = new String("Hello!");
             textfield1.setString(value1);
             form.append(textfield1);
        }



     } 
    catch (Exception ex) { 
        form.append(ex.toString()); 
        } 
 }
4

1 に答える 1

1

iso14443またはオブジェクトのいずれかtextfield1が null である可能性があります。

物事をデバッグする方法(非常に賢いところで、おめでとう)を使用すると、次のようにチェックをログに記録できます。

form.append("\n\n iso14443 is null: [" + (iso14443 == null)
        + "],\n textfield1 is null: [" + (textfield1 == null) + "]"); 
于 2012-05-18T09:40:57.847 に答える