2011-11-03 36 views
1

在我在Eclipse的Android機應用我得到以下錯誤:轉換爲Dalvik格式失敗,錯誤1在Android 4中?

[2011-11-03 19:39:12 - MiniPauker 1.0] Dx 
trouble processing "java/crcis/pauker/AddCardActivity$1.class": 

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

This is often due to inadvertently including a core library file 
in your application's project, when using an IDE (such as 
Eclipse). If you are sure you're not intentionally defining a 
core class, then this is the most likely explanation of what's 
going on. 

However, you might actually be trying to define a class in a core 
namespace, the source of which you may have taken, for example, 
from a non-Android virtual machine project. This will most 
assuredly not work. At a minimum, it jeopardizes the 
compatibility of your app with future versions of the platform. 
It is also often of questionable legality. 

If you really intend to build a core library -- which is only 
appropriate as part of creating a full virtual machine 
distribution, as opposed to compiling an application -- then use 
the "--core-library" option to suppress this error message. 

If you go ahead and use "--core-library" but are in fact 
building an application, then be forewarned that your application 
will still fail to build or run, at some point. Please be 
prepared for angry customers who find, for example, that your 
application ceases to function once they upgrade their operating 
system. You will be to blame for this problem. 

If you are legitimately using some code that happens to be in a 
core package, then the easiest safe alternative you have is to 
repackage that code. That is, move the classes in question into 
your own package namespace. This means that they will never be in 
conflict with core system classes. JarJar is a tool that may help 
you in this endeavor. If you find that you cannot do this, then 
that is an indication that the path you are on will ultimately 
lead to pain, suffering, grief, and lamentation. 

[2011-11-03 19:39:12 - MiniPauker 1.0] Dx 1 error; aborting 
[2011-11-03 19:39:12 - MiniPauker 1.0] Conversion to Dalvik format failed with error 1 

該錯誤只運行我的項目時,會出現。我長時間搜索正確的解決方案,但所有可能的解決方案都不起作用。順便說一下,我使用的是Android 4.0和Eclipse 3.6,現在的項目是

這個項目在Android 2.1中工作,但在Android 4.0中沒有!

回答

8

您的軟件包名稱以java爲開頭,它保留用於核心Java軟件包。如果可能,您應該重命名您的軟件包。

+0

感謝布里格姆,其真正的;-D –

+0

纔是值得注意到,如果它的javax開始,同樣的事情發生 –

3

我得到這個,因爲我手動添加android.jar到構建庫,因爲它說它沒有找到android庫。此修復程序是...

  1. 刪除的android.jar從建庫

  2. 右鍵單擊該項目,選擇「Android的工具」,然後選擇「修復項目屬性」

希望這會有所幫助。

+0

謝謝,但我不知道刪除構建庫中的android.jar。 當我選擇「修復項目屬性」時,不要發生任何事情! –

+0

如果你右鍵點擊你的項目,然後進入「Java Build Path」,然後選擇「Libraries」選項卡,應該包含Android庫(不僅僅是「android.jar」)我犯了手動添加「android」的錯誤。瓶子「,並導致了這個問題。這個視圖應該包括Android/Google API庫(其中包括罐子)。希望這可以幫助。 –

+0

在這種情況下,可能是您不止一次包含庫/ jar,不一定是android.jar,而是另一個。我會檢查以確保首先不是這種情況。 –

0

您必須檢查您的項目(或依賴庫)是否在構建路徑(項目>屬性> Java構建路徑>訂單和導出)中不包含android.jar

如果你的主要項目包含的android.jarAndroid的私家藏書,那麼你必須檢查構建路徑爲其添加到您的項目,並從構建路徑中刪除的android.jar所有庫。

0

修改jar包的scope屬性導致的錯誤,從compile-> provided,這個操作可以在File-> Project Structure-> Dependencies中修改,或者在build.gradle文件中的項目視圖app文件夾中修改那裏的依賴關係,相應的jar包編譯修改 這樣的: enter image description here

相關問題