尝试了一切 - 转换为Dalvik格式失败,错误1

时间:2012-01-29 18:16:04

标签: android dalvik abort

从我读到的内容来看,这个错误可能是由于对diff jar文件中存在的类的重复引用造成的,而且在我摆弄Build Path后似乎就是这种情况。但是,我所拥有的只是我的Build路径上的android.jar和android-support-v4.jar以及我需要获得干净构建的Referenced库。

我清理了项目,删除了R.java,关闭并重新打开了项目,但我仍然在下注。我还能做些什么来解决这个问题?我需要两个.jar文件,它们是我项目中唯一包含的文件。

控制台日志:

[2012-01-29 13:05:30 - HelloFragmentLayout] Dx 
trouble processing "javax/security/auth/callback/PasswordCallback.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.

[2012-01-29 13:05:30 - HelloFragmentLayout] Dx 1 error; aborting
[2012-01-29 13:05:30 - HelloFragmentLayout] Conversion to Dalvik format failed with error 1

3 个答案:

答案 0 :(得分:0)

我在尝试运行在android 4下为Android 3编写的示例应用程序时遇到了同样的问题。我在每个类中注释掉了每个方法的主体并试图从类路径中删除android.jar而我不知道t再次收到错误消息。它甚至可以在以前评论的代码中发表评论...奇怪:(不幸的是我不确定这是否是正确的解决方案,因为我在尝试运行相关应用程序时获得了NPE。那你呢? ?

答案 1 :(得分:0)

我遇到了同样的问题,我意识到我已经添加了两次Android库,也是JRE环境。只需确保项目的Java构建路径仅包含一个Android平台作为库,而不是JRE。这应该可以解决问题。

答案 2 :(得分:0)

删除除了android库以外可能正在使用的任何其他库或jar文件。您可能正在使用Android库,并且还从“添加Jar”选项中添加了用于Android的jar。如果是这样,请删除其他jar。在那之后,干净的构建应该可以解决您的问题。