2012-05-02 20 views
1

當我嘗試導出我的Android應用程序,我得到這個錯誤信息..Android的出口錯誤

[2012-05-02 14:34:07 - MyApplication] Dx 
    trouble processing "java/nio/CharBuffer.class": 

不明智的或錯誤的核心類(java中。*或使用javax。*) 時的用法不建設核心圖書館。

這往往是由於在不經意間,包括在應用程序的項目中核心庫文件 ,使用IDE(如Eclipse的 )時。如果你確定你不是故意定義一個 核心類,那麼這是對 正在進行的最可能的解釋。

但是,您可能實際上正試圖在覈心 名稱空間中定義一個類,該名稱空間可能來自您的源,例如,來自非Android虛擬機項目的 。這將大多數 肯定無法正常工作。至少,它會危害您的應用與該平臺的未來版本的兼容性 。 它也常常是有問題的合法性。

如果你真的打算建立一個核心庫 - 這是隻有 適合作爲創建一個完整的虛擬機 發行版的一部分,而不是編譯應用程序 - 然後使用 的「--core庫」選項來抑制此錯誤消息。

如果你繼續使用「--core庫」,但事實上是 構建應用程序,然後諒解,您的應用程序 仍然將無法生成或運行,在某些時候。請爲 爲憤怒的客戶做好準備,例如,發現您的 應用程序在升級其運行的 系統後將停止運行。你會責怪這個問題。

如果您正在使用合法的一些代碼恰好是在 核心包,那麼你有最簡單安全的替代是 重新包裝的代碼。也就是說,將有問題的類移動到您自己的包名稱空間的 。這意味着他們永遠不會與 與核心系統類衝突。 JarJar是一個工具,可以幫助你在這個努力中。如果你發現你不能這樣做,那麼這表明你所在的路徑最終會導致痛苦,痛苦,悲傷和悲傷。

[2012-05-02 14:34:07 - MyApplication] Dx 1 error; aborting 
[2012-05-02 14:34:07 - MyApplication] Conversion to Dalvik format failed with error 1 
[2012-05-02 14:42:22 - MyApplication] Dx 
trouble processing "java/nio/CharBuffer.class": 

Ill-advised or mistaken usage of a core class (java.* or javax.*) 
when not building a core library. 
+1

這裏有問題嗎? – cjk

+0

@cjk正如我在問題開頭寫的那樣。 「當我嘗試導出我的Android應用程序時,我收到此錯誤消息..」 – penguru

+0

通過,我意識到,當我嘗試使用proguard時出現此錯誤消息。從project.properties中刪除「proguard.config = proguard.cfg」一行時沒有錯誤 – penguru

回答

0

是否正確包含了外部引用。當你使用外部API時,通常會出現導出問題,但顯然沒有錯誤。檢查與參考。