android - 同步使用 ActionBarSherlock 和 ViewPagerIndicator 不会编译

标签 android dalvik actionbarsherlock android-viewpager

同时使用 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 以阻止它获取它——然后全部设置:)

最佳答案

是的,问题是 ActionBarSherlock 和 ViewPagerIndicator 都使用 libs/android-support-v4.jar 依赖项。

最简单的解决方案是将您的工作站升级到最新的 Android SDK 和 Eclipse ADT 插件版本(至少 r17),因为这种情况现在由 SDK 自动处理(从 r17 开始),请参阅 r17 changelog :

Dependency resolution

When a project references two Library projects that both require the same jar file, the build system has to detect and resolve the duplication.

另请注意,自 r17 以来,所有 libs 文件夹下的 jar 文件都会自动填充到项目的类路径中,您不再需要手动将它们添加到项目的构建路径中,也在 r17 changelog 中提到:

Projects have source folders, as well as Library Project and jar file dependencies. With no other setup needed than adding Library Projects as a dependency in project.properties, a project’s classpath is automatically populated with:

  • The content of the project’s libs/*.jar
  • The output of the Library Projects.
  • The Library Projects’ libs/*.jar

希望这对您有所帮助。

关于android - 同步使用 ActionBarSherlock 和 ViewPagerIndicator 不会编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10236242/

相关文章:

java - 关于Android Service生命周期的一些问题

java - 用正则表达式测试字符串?

android - OutOfMemory 错误,但有可用内存

android - ActionBarSherlock 错误膨胀类

android - 为什么没有相机结果?

Android studio 在哪里安装 NDK 文件? (以 zip 格式下载)

android - 如何从我的 Android 应用程序访问用户安装的 key 和证书?

Android 转换为 Dalvik 解析错误

java - 是否可以通过分析Java字节码来估计Dalvik字节码执行的指令数

android - ActionBarSherlock 自定义菜单项分隔符