同时使用ActionBarSherlock和ViewPagerIndicator时出现以下错误;从我读过的 - 它是由于两者中的冲突/重复库引起的。
一个解决方案是让ABS依靠VPI(或者反过来,我试过两个)但是即使在干净和重建之后,这仍然给了我同样的错误。现在我只是在两个独立的项目中工作,所以我可以完成我的工作 - 但是我想把它们结合起来很明显哈。非常感谢帮助!
[2012-04-19 00:39:20 - MashableReader] Dx
UNEXPECTED TOP-LEVEL EXCEPTION:
java.lang.IllegalArgumentException: already added: Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat;
[2012-04-19 00:39:20 - MashableReader] Dx at com.android.dx.dex.file.ClassDefsSection.add(ClassDefsSection.java:123)
[2012-04-19 00:39:20 - MashableReader] Dx at com.android.dx.dex.file.DexFile.add(DexFile.java:163)
[2012-04-19 00:39:20 - MashableReader] Dx at com.android.dx.command.dexer.Main.processClass(Main.java:486)
[2012-04-19 00:39:20 - MashableReader] Dx at com.android.dx.command.dexer.Main.processFileBytes(Main.java:455)
[2012-04-19 00:39:20 - MashableReader] Dx at com.android.dx.command.dexer.Main.access$400(Main.java:67)
[2012-04-19 00:39:20 - MashableReader] Dx at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:394)
[2012-04-19 00:39:20 - MashableReader] Dx at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:245)
[2012-04-19 00:39:20 - MashableReader] Dx at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:131)
[2012-04-19 00:39:20 - MashableReader] Dx at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:109)
[2012-04-19 00:39:20 - MashableReader] Dx at com.android.dx.command.dexer.Main.processOne(Main.java:418)
[2012-04-19 00:39:20 - MashableReader] Dx at com.android.dx.command.dexer.Main.processAllFiles(Main.java:329)
[2012-04-19 00:39:20 - MashableReader] Dx at com.android.dx.command.dexer.Main.run(Main.java:206)
[2012-04-19 00:39:20 - MashableReader] Dx at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[2012-04-19 00:39:20 - MashableReader] Dx at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
[2012-04-19 00:39:20 - MashableReader] Dx at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
[2012-04-19 00:39:20 - MashableReader] Dx at java.lang.reflect.Method.invoke(Unknown Source)
[2012-04-19 00:39:20 - MashableReader] Dx at com.android.ide.eclipse.adt.internal.build.DexWrapper.run(DexWrapper.java:180)
[2012-04-19 00:39:20 - MashableReader] Dx at com.android.ide.eclipse.adt.internal.build.BuildHelper.executeDx(BuildHelper.java:702)
[2012-04-19 00:39:20 - MashableReader] Dx at com.android.ide.eclipse.adt.internal.build.builders.PostCompilerBuilder.build(PostCompilerBuilder.java:646)
[2012-04-19 00:39:20 - MashableReader] Dx at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:728)
[2012-04-19 00:39:20 - MashableReader] Dx at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
[2012-04-19 00:39:20 - MashableReader] Dx at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:199)
[2012-04-19 00:39:20 - MashableReader] Dx at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:321)
[2012-04-19 00:39:20 - MashableReader] Dx at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:396)
[2012-04-19 00:39:20 - MashableReader] Dx at org.eclipse.core.internal.resources.Project$1.run(Project.java:618)
[2012-04-19 00:39:20 - MashableReader] Dx at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2344)
[2012-04-19 00:39:20 - MashableReader] Dx at org.eclipse.core.internal.resources.Project.internalBuild(Project.java:597)
[2012-04-19 00:39:20 - MashableReader] Dx at org.eclipse.core.internal.resources.Project.build(Project.java:124)
[2012-04-19 00:39:20 - MashableReader] Dx at com.android.ide.eclipse.adt.internal.project.ProjectHelper.doFullIncrementalDebugBuild(ProjectHelper.java:1000)
[2012-04-19 00:39:20 - MashableReader] Dx at com.android.ide.eclipse.adt.internal.launch.LaunchConfigDelegate.launch(LaunchConfigDelegate.java:147)
[2012-04-19 00:39:20 - MashableReader] Dx at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:854)
[2012-04-19 00:39:20 - MashableReader] Dx at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:703)
[2012-04-19 00:39:20 - MashableReader] Dx at org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(DebugUIPlugin.java:928)
[2012-04-19 00:39:20 - MashableReader] Dx at org.eclipse.debug.internal.ui.DebugUIPlugin$8.run(DebugUIPlugin.java:1132)
[2012-04-19 00:39:20 - MashableReader] Dx at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
[2012-04-19 00:39:20 - MashableReader] Dx 1 error; aborting
[2012-04-19 00:39:20 - MashableReader] Conversion to Dalvik format failed with error 1
更新答案: 好吧 - 正如下面的答案所示,问题是Eclipse ADT中的依赖项解析。基本上我的解决方案是让ViewPagerIndicator依赖于ActionBarSherlock(意思是,在VPI属性中,我将ABS添加到项目中,就像你对常规项目一样 - 对于那些可能在倒退的人来说)。我仍然遇到问题,当我在代码中收到错误时说某些方法无法被覆盖 - 这部分是因为你输入错误,所以删除所有导入和CRTL + SHIFT + O(快速导入分辨率)并选择android.support.v4包中的所有包,你应该都很好。但后来我仍然遇到了最初的Dalvik问题 - 解决这个问题我必须进入我的VPI库所在的实际文件夹,并从/ libs文件夹中删除支持jar以阻止它抓取它 - 然后全部设置:)< / p>
答案 0 :(得分:6)
是的,问题是ActionBarSherlock和ViewPagerIndicator都使用libs / android-support-v4.jar依赖。
最简单的解决方案是将您的工作站升级到最新的Android SDK和Eclipse ADT插件版本(至少r17),因为这种情况现在由SDK自动处理(自r17起),请参阅r17 changelog:< / p>
依赖性解决方案
当项目引用两个都需要相同jar文件的Library项目时,构建系统必须检测并解决重复。
另请注意,从r17开始,libs文件夹下的所有jar文件都会自动填充到项目的类路径中,您不需要再将它们手动添加到项目的构建路径中,r17 changelog中也提到了这一点:
项目包含源文件夹,以及Library Project和jar文件依赖项。除了在project.properties中添加Library Projects作为依赖项之外,不需要其他任何设置,项目的类路径将自动填充:
- 项目的libs / * .jar
的内容- 图书馆计划的输出。
- Library Projects'libs / * .jar
希望这有帮助。
答案 1 :(得分:0)
我使用的是最新版本的ADT,SDK等,它仍然存在这个问题 - 它似乎仍然不知道从哪个依赖库等使用哪个支持库。
TJ的解决方案确实有效但我使用了另一种方法。
我的解决方案如下:
因此,更新支持库不应该破坏任何内容并允许您使用最新版本。