2014-03-02 39 views
0

我得到以下運行時錯誤:NoClassDefFound錯誤的Xerces LIB的StreamSource類

java.lang.NoClassDefFoundError: mf/javax/xml/transform/stream/StreamSource

從下面這行代碼:

Source schemaFile = new StreamSource(XSDreader); 

這是一個Xerces的類的實例中第一次出現在碼。

  1. 我下載的Xerces爲Android從谷歌代碼。
  2. 進口的代碼作爲新Java項目在Eclipse
  3. 出口從Xerces的項目(編譯OK)
  4. 新增了Xerces JAR文件到我的項目構建路徑庫
  5. 在代碼的JAR文件我改變了一切import線從javax...mf.javax...

經過.jar文件,它包含在預期路徑類StreamSource的
試過的Xerces/bin加入到classpath中(它有.class文件),但這並沒有幫助。
清洗的項目,它並沒有幫助。
經過我的項目和Xerces項目使用相同的JDK版本達標(1.7)

調試的代碼,並獲得到VMClassLoader沒有找到類,不能挖比這更深的地步。

在這一點上,我用盡了想法。

+0

我認爲Android項目和庫中使用的庫應該使用JDK 1.6。使用1.7編譯的Jars文件是NoClassDefFoundError的常見原因,因爲使用1.7編譯的類不會打包到apk文件中。 – Leszek

+0

@Lecho我嘗試了你的建議,但並沒有解決問題。 – ilomambo

+1

「將Xerces JAR文件添加到我的項目構建路徑庫」 - 取消這一步,然後將JAR放入'libs /'中,就像在使用Eclipse進行Android開發時使用其他JAR一樣。 「試圖將Xerces/bin添加到類路徑中」 - 撤消這一點。 – CommonsWare

回答

0

有關簡單解決方案,請參閱@CommonsWare對該問題的評論。該解決方案工作正常,唯一的問題是調試時,調試器無法將代碼放入庫中,Eclipse不提供指定源位置的選項。
所以一些試驗和錯誤後,我發現了另一個解決方案,它允許調試庫代碼。

  1. 打開你的項目構建路徑配置

  2. 在庫中選擇「添加庫...」

    2.1選擇型「用戶庫」,然後單擊下一步。

    2.2單擊「用戶庫......」

    2.3添加一個新的庫,並將它命名爲你的願望。它將被創建爲空

    2.4選擇「添加JAR文件」並瀏覽並選擇xerces JAR文件。

    2.5單擊「源附件」行並將其指向xerces的src文件夾。

    2.6 OK全部返回到Build path對話框。

  3. 轉到「訂單和導出」選項卡,並標記選中的新庫。