从我读到的内容来看,这个错误可能是由于对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
答案 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。在那之后,干净的构建应该可以解决您的问题。