2011-10-05 28 views
8

當我清理項目中,我得到以下錯誤:不明智的或錯誤的使用(Java *或使用javax。*)時,不建立一個核心庫

[2011-10-05 13:47:53 - The Basics] 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. 

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

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

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

如果你繼續使用「--core-library」,但實際上是 構建一個應用程序,那麼應該預先警告你的應用程序 在某些時候仍然無法構建或運行。請爲 爲憤怒的客戶做好準備,例如,發現您的 應用程序在升級其運營 系統後停止運行。你會責怪這個問題。

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

[2011-10-05 13:47:53 - The Basics] Dx 1 error; aborting 
[2011-10-05 13:47:53 - The Basics] Conversion to Dalvik format failed with error 1 

回答

1

您的IDE配置錯誤。確保您的腳本或IDE未通過rt.jarandroid.jardx

4

我有這個問題。我使用Maven構建我的android項目。我的問題是由我的依賴之一,取決於Android的罐子。我更新了我的pom以從該依賴中排除android,併爲我解決了這個問題。

<dependency> 
     <groupId>org.reassembler</groupId> 
     <artifactId>synth-android</artifactId> 
     <version>2.5.8</version> 
     <exclusions> 
      <exclusion> 
       <artifactId>junit</artifactId> 
       <groupId>junit</groupId> 
      </exclusion> 
      <exclusion> 
       <artifactId>android</artifactId> 
       <groupId>android</groupId> 
      </exclusion> 
     </exclusions> 
    </dependency> 

希望這可以幫助別人,我花了一段時間才弄清楚發生了什麼事情。

+0

感謝您的回答...... JUnit是什麼導致了我的錯誤。簡而言之, – tantalum

2

爲了所有可能遇到此問題的人的利益,這個問題可能是由於包含一個較舊的庫,如android.jar。從構建路徑中刪除.jar文件將允許您編譯。否則,您可以使用錯誤消息中提到的「jarjar」將.jar文件移動到另一個軟件包。

+0

這是正確的。不過,您可能需要採取一些額外的步驟。 UPVOTED! :) –

0

在Android Studio中,我已經包括Java和使用javax jar文件在我lib文件夾,並有(在應用水平build.gradle)有關他們的依賴。我評論他們。

//compile files('libs/ K java-rt-jar-stubs-1.5.0.jar') 
//compile 'javax.annotation:jsr250-api:1.0' 
//compile files('libs/javax. annotation.jar') 

然後我去了項目視圖,並刪除了jar文件。有一些遺留的java.awt.geom實例,我不得不清除,但重建項目,然後我很好。

相關問題