2013-03-16 50 views
1

我面對java.lang.NoSuchMethodError: android.nfc.NdefRecord.createUri例外從這段代碼:拋出異常,卡扣部件忽略

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD) { 
    mNfcAdapter = NfcAdapter.getDefaultAdapter(this.getApplicationContext()); 
    try { 
     if (mNfcAdapter == null) { 
     } else { 
      NdefRecord uriRecord = NdefRecord.createUri(someUri); 
      NdefMessage msg = new NdefMessage(new NdefRecord[] {uriRecord}); 
      mNfcAdapter.setNdefPushMessage(msg, this); 
     } 
    } catch (Exception e) { 
     Log.e(getClass().getSimpleName(), "initNfcNdefMessage()", e); 
    } 
} 

但是,initNfcNdefMessage不會打印在堆棧跟蹤。這怎麼可能?

回答

5

因爲java.lang.NoSuchMethodError不是從Exception類派生的。

您正試圖通過異常對象趕上它,但它原本是拋出

檢查這個

java.lang.Object 
    extended byjava.lang.Throwable 
     extended byjava.lang.Error 
      extended byjava.lang.LinkageError 
       extended byjava.lang.IncompatibleClassChangeError 
        extended byjava.lang.NoSuchMethodError 

Refer here