尝试了所有方法 -- 转换为 Dalvik 格式失败,错误 1
根据我的阅读,此错误可能是由于对 diff jar 文件中存在的类的重复引用引起的,在我摆弄构建路径后似乎就是这种情况。但是,我所拥有的只是构建路径上的 android.jar 和 android-support-v4.jar 以及我需要获得干净构建的引用库。
我清理了项目,删除了 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
From what I read, this error could be caused by duplicate references to classes existing in diff jar files and that seemed to be the case after I fiddled with the Build Path. BUT, all I have was the android.jar and the android-support-v4.jar on my Build path and under the Referenced libraries which I need to get a clean build.
I cleaned the project, deleted the R.java, closed and reopened the project but am still getting this right off the bet. What else can I do to fix this? I need both .jar files and they are the only ones included in my project.
Console Log:
[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
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我在尝试在 android 4 下运行为 android 3 编写的示例应用程序时遇到了同样的问题。我注释掉了每个类中每个方法的主体,并尝试从类路径中删除 android.jar,但我没有得到错误消息不再出现。即使我在之前注释掉的代码中进行注释,它仍然有效...奇怪:(不幸的是,我不确定这是否是正确的解决方案,因为我在尝试运行有问题的应用程序时得到了 NPE。你呢?
I had the same problem while trying to run an example app written for android 3 under android 4. I commented-out the body of every method in every class and tried to remove the android.jar from the classpath and I don't get the error message anymore. And it works even when I comment-in the code previously out-commented... strange :( Unfortunately I'm not sure if this is the proper solution since I get a NPE while trying to run the app in question. What about you?
我遇到了同样的问题,我意识到我已经添加了两次Android库,还有JRE环境。只需确保项目的 Java 构建路径仅包含一个 Android 平台作为库,而不包含 JRE。这应该可以解决问题。
I have faced with the same problem, and I realized that I have added Android library twice, also the JRE environment. Just make sure that Java build path of the project only contains one Android platform as the library, and not JRE. This should resolve the issue.
删除除 android 库之外您可能使用的任何其他库或 jar 文件。您可能正在使用 Android 库,并且还通过“添加 Jar”选项添加了适用于 Android 的 jar。如果是这样,请取出附加的罐子。之后,干净的构建应该可以解决您的问题。
Remove any other library or jar files that you might be using apart from the android library. Chances are you might be using the Android library and also have added the jar for android from "Add Jar" option. If so, remove the additional jar. After that, a clean build should solve your problem.