【问题标题】:ParseException for org.osmdroid.DefaultResourceProxyTestorg.osmdroid.DefaultResourceProxyTest 的 ParseException
【发布时间】:2014-04-24 13:07:45
【问题描述】:

当我尝试在 Ubuntu 13.10 上的 Eclipse Kepler 4.3.2 中运行 this Android project 时。 dexer 抛出这个 ParseException:

$ Dx 
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dx.cf.iface.ParseException: class name 
    (org/osmdroid/DefaultResourceProxyTest) does not match path 
    (target/test-classes/org/osmdroid/DefaultResourceProxyTest.class)

    at com.android.dx.cf.direct.DirectClassFile.parse0(DirectClassFile.java:520)
    at com.android.dx.cf.direct.DirectClassFile.parse(DirectClassFile.java:406)
    at com.android.dx.cf.direct.DirectClassFile.parseToInterfacesIfNecessary(DirectClassFile.java:388)
    at com.android.dx.cf.direct.DirectClassFile.getMagic(DirectClassFile.java:251)
    at com.android.dx.command.dexer.Main.processClass(Main.java:665)
    at com.android.dx.command.dexer.Main.processFileBytes(Main.java:634)
    at com.android.dx.command.dexer.Main.access$600(Main.java:78)
    at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:572)
    at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:284)
    at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166)
    at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)
    at com.android.dx.command.dexer.Main.processOne(Main.java:596)
    at com.android.dx.command.dexer.Main.processAllFiles(Main.java:498)
    at com.android.dx.command.dexer.Main.runMonoDex(Main.java:264)
    at com.android.dx.command.dexer.Main.run(Main.java:230)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at com.android.ide.eclipse.adt.internal.build.DexWrapper.run(DexWrapper.java:187)
    at com.android.ide.eclipse.adt.internal.build.BuildHelper.executeDx(BuildHelper.java:786)
    at com.android.ide.eclipse.adt.internal.build.builders.PostCompilerBuilder.build(PostCompilerBuilder.java:597)
    at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:733)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
    at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:206)
    at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:328)
    at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:403)
    at org.eclipse.core.internal.resources.Project$1.run(Project.java:618)
    at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2345)
    at org.eclipse.core.internal.resources.Project.internalBuild(Project.java:597)
    at org.eclipse.core.internal.resources.Project.build(Project.java:124)
    at com.android.ide.eclipse.adt.internal.project.ProjectHelper.doFullIncrementalDebugBuild(ProjectHelper.java:1143)
    at com.android.ide.eclipse.adt.internal.launch.LaunchConfigDelegate.launch(LaunchConfigDelegate.java:155)
    at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:858)
    at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:707)
    at org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(DebugUIPlugin.java:1018)
    at org.eclipse.debug.internal.ui.DebugUIPlugin$8.run(DebugUIPlugin.java:1222)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)
...while parsing target/test-classes/org/osmdroid/DefaultResourceProxyTest.class

$ Dx 1 error; aborting
$ Conversion to Dalvik format failed with error 1

【问题讨论】:

  • 我认为如果你重建库并从 /gen 目录中排除所有内容,一切都应该正常。
  • @RolandKákonyi 如何从/gen 目录中排除所有内容?
  • 检查this。您是否尝试过清洁和构建?它可能正在工作
  • 另外你应该将你的 gen 目录添加到你的 .gitignore 文件中,但是你必须删除它并在忽略之前提交删除。跨度>
  • 我试过了,这里也是。该错误与 osmdroid 有关。我还没有弄清楚。你是从以前的版本升级的吗?到现在还有效吗?从那以后发生了什么?

标签: android osmdroid parseexception dx


【解决方案1】:

在 Eclipse 中右键单击项目,转到 Java Build Path,单击 Order and Export 选项卡并取消选中“Android Private Libraries”。

【讨论】:

  • 我不确定这是否是原因,但在取消选中“Android Private Libraries”后,应用程序崩溃并出现以下错误:java.lang.NoClassDefFoundError: android.support.v4.content.LocalBroadcastManager
  • 让我提出这个建议 - 重新检查 Android 私有库。然后从 libs 文件夹中删除 jar 文件并将它们放在一个新文件夹中(可能只是“lib”)。然后通过 Java Build Path 对话框添加每个 jar 文件。在“订购和导出”选项卡中取消选中每个添加的 jar。
【解决方案2】:

com.android.dx.cf.iface.ParseException: 类名 (example/igd/ConnectionInfoTest$1) 不匹配路径 (target/test-classes/example/igd/ConnectionInfoTest$1.class)

这是我遇到的问题!! 我用这个方法解决了这个问题:

Properties->Java Bulid Path->Source->Output folder->Edit->Specific Output folder->Browse..

target/test-classes (target/classes) 更改为 target

因为我没有财富10,所以不能上传图片!! 5555555

谢谢!!!!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-08
    • 2017-05-11
    • 2013-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多