转换为Dalvik格式失败,错误1在Console视图中显示可怕消息

时间:2013-06-22 19:06:02

标签: android console dalvik

我已经看过这个主题的一些问题,但是当我在我的错误中搜索其他部分时,我没有找到任何内容,所以我决定发布一个完整解释的问题。

我的代码中没有识别错误。无处。添加所有库,成功链接外部库项目。没有任何迹象表明发射会出现任何问题。

然而,当我启动应用程序 - 运行,编译和构建(自动) - 我收到一条弹出消息,指出我的项目包含错误,我应该在尝试再次启动应用程序之前修复它们。

所以我弄清楚了一些属性,我的同事发现必须在Android Private Libraries中检查“Properties -> Java Build Path -> Order and Export”(我之前已经检查过未选中的复选框)。但是当我运行应用程序时 - 同样弹出,以及Console视图中的以下内容:(可怕的消息)

[2013-06-22 20:55:03 - TheApplication] Dx 
trouble processing "java/sql/Savepoint.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.

[2013-06-22 20:55:03 - TheApplication] Dx 1 error; aborting
[2013-06-22 20:55:03 - TheApplication] Conversion to Dalvik format failed with error 1

之前有没有人收到此消息?我为什么要这样做?我应该去哪里寻找我可能根本不知道的“隐藏的图书馆”或“内部图书馆”?

我和我的老板和同事一起检查过 - 他们在项目中都有相同的库(因为我们一起工作,我们显然必须有相同的东西)。那么我应该去哪里解决这个问题呢?

3 个答案:

答案 0 :(得分:15)

我解决了在proyect和库中的“Order and Export”选项卡中删除 android.jar 的问题。

答案 1 :(得分:4)

  

以前有人收到过这条消息吗?

是。但不是自2009年以来。

  

为什么我得到它?

因为在项目的源代码中或在JAR中,您拥有java.sql.Savepoint接口的另一个副本,而不是来自Android运行时的接口。

  

我应该去哪里寻找我可能根本不知道的“隐藏的图书馆”或“内部图书馆”?

您的Eclipse类路径。您可能希望使用构建路径对话框中“订购和导出”屏幕的屏幕截图编辑您的问题。

答案 2 :(得分:1)

有同样的问题。

以下操作帮助我摆脱了此错误消息。

1)转到Project--> properties-->Java Build Path

2)选择Order and Export tab

3)取消选中Android Private LibrariesAndroid Dependencies,然后点击ok

enter image description here

此后应用程序成功启动。