2012-01-11 44 views
3

我只添加到现有的完全正常的项目,该文件com/android/vending/billing/IMarketBillingService.aidl转换为Dalvik格式失败,错误1 - 为什么?

(我没加任何东西(从market_billing样本),然而,因为我连尝试使用却把服务)

它编译和完美的构建,但是当我尝试运行它,我收到的控制台以下:

java.lang.IllegalArgumentException: already added: Lcom/android/vending/billing/IMarketBillingService$Stub$Proxy; 
Dx at com.android.dx.dex.file.ClassDefsSection.add(ClassDefsSection.java:123) 
Dx at com.android.dx.dex.file.DexFile.add(DexFile.java:163) 
Dx at com.android.dx.command.dexer.Main.processClass(Main.java:486) 
Dx at com.android.dx.command.dexer.Main.processFileBytes(Main.java:455) 
Dx at com.android.dx.command.dexer.Main.access$400(Main.java:67) 
Dx at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:394) 
Dx at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:245) 
Dx at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:131) 
Dx at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:109) 
Dx at com.android.dx.command.dexer.Main.processOne(Main.java:418) 
Dx at com.android.dx.command.dexer.Main.processAllFiles(Main.java:329) 
Dx at com.android.dx.command.dexer.Main.run(Main.java:206) 
Dx at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
Dx at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
Dx at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
Dx at java.lang.reflect.Method.invoke(Unknown Source) 
Dx at com.android.ide.eclipse.adt.internal.build.DexWrapper.run(DexWrapper.java:179) 
Dx at com.android.ide.eclipse.adt.internal.build.BuildHelper.executeDx(BuildHelper.java:745) 
Dx at com.android.ide.eclipse.adt.internal.build.builders.PostCompilerBuilder.build(PostCompilerBuilder.java:634) 
Dx at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:629) 
Dx at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) 
Dx at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:172) 
Dx at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:282) 
Dx at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:363) 
Dx at org.eclipse.core.internal.resources.Project$1.run(Project.java:545) 
Dx at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1975) 
Dx at org.eclipse.core.internal.resources.Project.internalBuild(Project.java:524) 
Dx at org.eclipse.core.internal.resources.Project.build(Project.java:123) 
Dx at com.android.ide.eclipse.adt.internal.project.ProjectHelper.doFullIncrementalDebugBuild(ProjectHelper.java:961) 
Dx at com.android.ide.eclipse.adt.internal.launch.LaunchConfigDelegate.launch(LaunchConfigDelegate.java:146) 
Dx at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:853) 
Dx at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:702) 
Dx at org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(DebugUIPlugin.java:924) 
Dx at org.eclipse.debug.internal.ui.DebugUIPlugin$8.run(DebugUIPlugin.java:1128) 
Dx at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) 
Dx 3 errors; aborting 
Conversion to Dalvik format failed with error 1 

任何想法为什么这是怎么回事?

注:此添加.aidl文件外部罐子,所以答案here不会在我的情况有所帮助。

更新:我删除了可疑.aidl文件,清理项目,但问题并没有消失。奇怪的。

更新:我知道了!我刚刚尝试运行一个现有的项目,该项目在将SDK升级到9之前已经完美运行,并且我也遇到了同样的错误。我知道我应该避免这种“升级”。现在,我必须浪费时间解决本应不存在的问题,直到根据计划进行升级,而不是在我forced时进行升级,而无法执行受控迁移的计划&。应用发布延迟...

更新:似乎有从default.propertiesproject.properties,但尽管我手动矫正全部转换错误的自动转换的连接,问题仍然存在。我现在没有开发环境。这是荒唐的。

+1

至于.aidl文件,它们只生成.java类到gen -folder中(与R.java相同的地方为项目)。应该在项目清理时将其删除,但重复检查不应该造成任何伤害。 – harism 2012-01-12 00:05:59

+0

@harism感谢您的提示。我会检查这个,但我怀疑这个问题不仅仅是'.aidl',因为它现在抱怨一个'EditPreferences'文件,它真的只存在一个库项目。在复制项目时,我可能做了一些我不记得的事情。我讨厌带迟滞的IDE ... +1。 – 2012-01-12 00:13:33

+0

@harism好的,我检查了.aidl产生的.java类不在任何gen文件夹(多个库项目)中。我暂时删除了.aidl文件,所以这没问题。然而,我发现,现在被抱怨的EditPreferences文件是其他两个库项目所使用的Library项目中的第一个.java文件。这用于完美地工作。发生了什么? – 2012-01-12 00:22:23

回答

6

问题终于解决了,使用了来自惊人的@TheTerribleSwiftTomato的this solution

这是全部由“Changes to Library Projects in Android SDK Tools, r14”造成的。

感谢@谷歌让我的生活变得如此悲惨。如果您引入系统行为的根本性变化,当我还没有准备好吞并随附的所有信息时(或者至少发出错误),不要强制我从SDK 9“升级”到SDK 16消息可以直接指向此更改)。

另一方面,真正感谢@谷歌推出期待已久的,多向往的功能generates each library project into its own JAR file。这是一个真正的救星,它只能从SDK Tools r14上得到。哇!

+0

相关:唯一的问题是,您无法将库导出为独立的JAR文件,以便在多个工作区中使用(您始终需要引用库源)。无论如何,感谢您记录你的旅程并回答你自己的问题 - 你留下的帮助很多。 – kape123 2013-02-05 23:34:44

1

如果您使用的是cocos2dx。简单的问题是你的工作区没有配置android sdk。只是用你的IDE(eclipse或android studio)来配置一个新的工作区或现有的工作区。它为我工作

相关问题