2012-01-11 5 views
3

私は、既存の完全に動作するプロジェクト、ファイルcom/android/vending/billing/IMarketBillingService.aidlDalvik形式への変換がエラー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ファイルを追加してはない外部jarファイルなので、答えhereは、私の場合には役立ちません。

アップデート:私はプロジェクトをきれいに、その疑わしい.aidlファイルを削除したが、問題が離れて行きませんでした。奇妙な。

更新:私はそれを知っていました!私はSDKを9から16に "アップグレード"する前に完全に動作していた既存のプロジェクトを実行しようとしましたが、同様のエラーも発生します。私はその "アップグレード"を避けておくべきであることを知っていた。プランに沿ってアップグレードするまでは、になってから、計画された&の制御された移行を実行することができません。アプリは、遅延放出...

更新:ありproject.propertiesからdefault.propertiesからバギー自動変換への接続のようですが、私はすべて手動で変換エラーを修正するにもかかわらず、それでも問題が解決しません。私は今、開発環境がなくなりました。ばかげてる。

+1

.aidlファイルに関しては、.javaクラスはgen -folderにしか生成されません(R.javaプロジェクトのために)。それはプロジェクトクリーンで削除する必要がありますが、二重チェックは何の害もないはずです。 – harism

+0

@harismチップをありがとう。私はこれをチェックしますが、 '.aidl'だけではなく、実際にはライブラリプロジェクトの1つだけ存在する' EditPreferences'ファイルについて不平を言っているので、もっと難しい問題を疑うでしょう。私はプロジェクトを複製している間に思い出さないことをしているかもしれません。ヒステリシスを持ったIDEが嫌い...今は+1。 –

+0

@harism OK。私はチェックし、.aidlの結果として生成された.javaクラスは、genフォルダ(複数のライブラリプロジェクト)にはありません。私は一時的に.aidlファイルをremvoedしたので、これはOKです。しかし、私が発見したのは、 'EditPreferences'ファイルは現在、2つの他のライブラリプロジェクトで使用されているライブラリプロジェクトの1番目の.javaです。これは完璧に動作するために使用されました。何が起こった? –

答えて

6

究極の解決策は、驚くべき@TheTerribleSwiftTomatoからthis solutionを使用して解決しました。

これはすべて「Changes to Library Projects in Android SDK Tools, r14」によって引き起こされました。

ありがとうございます@Googleは私の人生をとても悲惨なものにしてくれました。システムの動作に根本的な変更を導入した場合は、付属のすべての情報を手に入れる準備ができていないときに、SDK 9からSDK 16へのアップグレードを強制しないでください(少なくとも、エラーを出してくださいこの変更を直接指し示すことができるメッセージ)。

一方、本当にありがとうございました、私は長い間待っていた、多くの年老いた、紹介するための@Googleはgenerates each library project into its own JAR fileの機能。これは、SDKツールr14をオンにした場合にのみ有効な、人生の節約になります。うわー!

+0

関連する唯一の問題は、複数のワークスペースで使用するための独立したJARファイルにライブラリをエクスポートできないことです(常にライブラリソースを参照する必要があります)。とにかく、あなたの旅を文書化し、あなた自身の質問に答えることに感謝します。 – kape123

1

cocos2dxを使用している場合。単にあなたのワークスペースがandroid sdkで設定されていないということです。新しいワークスペースや既存のワークスペースをあなたのIDE(eclipseやアンドロイドスタジオ)で設定してください。私の仕事

関連する問題