ADT22でのMultiple dex files defineの解決方法

ADT22にして既存のプロジェクトを実行してみようと思ったら「Multiple dex files define」というエラーがコンソールに出て、実行できない状態になりました。

[2013-05-24 17:07:13 - Dex Loader] Unable to execute dex: Multiple dex files define Loauth/signpost/commonshttp/CommonsHttpOAuthConsumer;
[2013-05-24 17:07:13 - ***] Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Loauth/signpost/commonshttp/CommonsHttpOAuthConsumer;

これは同じクラス名を持つ複数のjarがAPKに含まれている場合に出るエラーです。
ADT22でプロジェクトにAndroid Private Librariesというフォルダができていて、apkにexportするファイルが被るから、という理由のようです。

解決方法は、Eclipseのプロジェクトを右クリックして、「Build Path」→「Configure Build Path」→「Order and Export」タブで、「Android Private Libraries」にチェックが入っていることを確認して、またlibs以下のファイルにチェックが「入っていないこと」を確認します。
このエラーが出たときは、signpostのライブラリにチェックが入っていたので、外しました。


タグ: ,

新しく会社作りました!

コメント / トラックバック 1 件

  1. […] SDK r22 の注意点、libraryのパスってどうなってるの?、ADT22でのMultiple dex files defineの解決方法、開発でつまづいた事!! […]

コメントをどうぞ