7

最新の開発者ツールであるADT14に更新した後、ライブラリプロジェクトを含むAndroidプロジェクトが実行されなくなり、エラーが発生します。

Dx UNEXPECTED TOP-LEVEL EXCEPTION: ... already added: ...
...
Conversion to Dalvik format failed with error 1

プロジェクトの削除と再追加を含むソリューションでこの問題を説明している他のスレッドは機能しません。

4

10 に答える 10

8

この問題は、ADT14の既知の問題としてリストされています。AndroidToolsプロジェクトサイトからの引用は次のとおりです。

プロジェクトがエラーでビルドされない [2011-10-20 23:32:04 - MyApp] Dx UNEXPECTED TOP-LEVEL EXCEPTION:<class>: already added: <class> これは、メインプロジェクトから以前のライブラリソースフォルダを削除できなかったことが原因です。ちなみに、これらのリンクされたソースフォルダーの脆弱性は、このメカニズムから離れる理由の1つです(詳細については、 http://tools.android.com/recent/buildchangesinrevision14を参照してください)。解決策は、これらの<libraryname>_srcソースフォルダーをプロジェクトから削除することです。それらを右クリックして、を選択しますBuild Path > Remove from Build Path。また、リンクされたフォルダを削除するように求められます。プロンプトが表示されない場合は、手動で削除してください。このすばらしい投稿で問題のスクリーンショットを見ることができます:http: //android.foxykeep.com/dev/fix-the-conversion-to-dalvik-format-failed-with-error-1-with-adt-14

解決:

それが言うように、解決策は<libraryname>_srcあなたのプロジェクトからソースフォルダを削除することです。これを行うには、それらを右クリックして[ビルドパス]-> [ビルドパスから削除]を選択するか、プロジェクトのプロパティ([Javaビルドパス]-> [ソース]タブ)を選択します。

于 2011-10-24T19:38:41.597 に答える
6

私もこの問題に遭遇しましたが、上記のどれもそれを修正しませんでした:

  • 途中でクリーンビルドでライブラリを削除/再追加しようとしました
  • プロジェクトの削除と再インポートを試みました

サイコロはありません。それでも、apkにエクスポートしようとするたびに、「Dalvik形式への変換がエラー1で失敗しました」という顔が私をじっと見つめていました。

project.propertiesファイルでこの行をコメントアウトすると、すべてが正常に機能したため、問題はProGuardに関連していることがわかりました。

proguard.config=proguard.cfg

しかし、 David M Youngによるこの投稿を見つけるまで、問題を解決することはできませんでした。どうやら、ADK / ADT 14には間違ったバージョンのProGuardが同梱されていたようです(おっと!)。ProGuardバージョン4.6をダウンロード しました。android-sdk \ android-sdk \ tools \ proguard\libディレクトリの内容をproguard4.6.zip \proguard4.6 \ lib(3 * .jarファイル)に置き換え、Eclipseを再起動してapkにエクスポートしました。

于 2011-10-28T07:49:35.020 に答える
5

解決するには、次のことを行う必要があります。

  • プロジェクト>プロパティ>Javaビルドパスを右クリックし、1つのAndroid IJを除くすべてのライブラリを削除します(バージョンによって異なります)
  • プロジェクト>クリーン
  • 削除したライブラリを追加し直します

問題が再度発生する場合は、プロジェクトの外部にライブラリを配置し、それらを「外部JAR」としてインポートすると便利です。

于 2011-10-24T11:18:38.320 に答える
1

こんにちは、私はここに2セントを投じると思いました。私がやったように、

"_src->パスから削除"

それから私はそれをきれいにして再構築しました、そして私はそれを私の電話でデバッグモードでうまく動かすことができました。エクスポートすることもできます。ただし、プロガードを無効にした場合に限ります。もちろん、すべての人が見ることができるようにコードを開いたままにしておくことはできませんでした。とてもおかしくなりました。しかし、私はついに治療法を見つけました。奇妙なことに、r12でもこれと同じ問題(および修正)がありました。

次の場所にあります:[AndroidSDKインストールディレクトリ]\ tools \ proguard \ bin \ proguard.bat

変化する

%java_exe%-jar "%PROGUARD_HOME%" \ lib \ proguard.jar%*を呼び出します

%java_exe%-jar "%PROGUARD_HOME%" \ lib \ proguard.jar%1%2%3%4%5%6%7%8%9を呼び出します

私は他のたくさんのものを試しましたが、これは私のためにそれをしたことです。

于 2011-11-14T04:25:05.430 に答える
0

プロジェクト»プロパティ»Javaビルドパス»ライブラリに移動し、「AndroidXY」(私の場合はAndroid 1.5)を除くすべてを削除します。[OK]をクリックします。[プロジェクト]»[クリーン]»[下で選択したプロジェクトをクリーンアップ]に移動します»プロジェクトを選択して[OK]をクリックします。それはうまくいくはずです。

プロジェクトフォルダのどこかにJARファイルがあり(Admob JARファイルをsrcフォルダにコピーした)、それをJavaパスライブラリとして追加した可能性もあります。パッケージエクスプローラーには表示されないため、気付かないでしょうが、2回カウントされ、恐ろしいDalvikエラー1が発生します。

もう1つの考えられる理由は、パッケージ名の競合である可能性があります。このパッケージ内にパッケージcom.abc.xyzとA.javaという名前のクラスがあり、同じcom.abc.xyz.A.javaを含む別のライブラリプロジェクト(このプロジェクトの依存関係に追加されます)があるとします。そうすると、まったく同じエラーが発生します。これは、同じファイルA.javaへの複数の参照があり、それを適切にビルドできないことを意味します。

于 2013-02-26T07:24:57.963 に答える
0

これは、AndroidSDKの既知の問題です。修正については、このブログ投稿を確認してください。

于 2011-10-22T19:46:22.470 に答える
0

プロジェクトにライブラリを使用しましたが、同じエラーが発生しました。ライブラリとsrc-folderを削除し、クリーニングしてから追加し直して、再度クリーニングすることで解決しました。

削除する

  1. プロジェクトのプロパティ->Android:ライブラリを削除し、「適用」
  2. 含まれているライブラリのsrc-folderを削除します
  3. よりきれいに、

もう一度追加

  1. プロジェクトのプロパティ->Android:ライブラリを再度追加します。「適用」
  2. クリーンプロジェクト
于 2011-10-24T11:09:38.517 に答える
0

この問題が再び発生した場合(他の回答で説明されているように、最初に_srcアイテムを削除することで修正されました)-今回は、削除する_srcファイルがありませんでした。エラーは、リンクされたライブラリプロジェクトの一部およびメインプロジェクト自体の一部として含まれているandroid-support-v4.jarに関連していました。

エラーDxUNEXPECTEDTOP-LEVEL EXCEPTION:java.lang.IllegalArgumentException:すでに追加されています:Landroid / support / v4 / content / ModernAsyncTask $ WorkerRunnable;

メインプロジェクトのビルドパスからandroid-support-v4.jarファイルを削除すると、問題は解決しました。エラーの考えられる原因としてこれに遭遇したとは思わないでください。

于 2011-11-15T16:45:57.677 に答える
0

同じ問題が発生しました。ADT20.0.3を使用しています。

これを解決するために私が従った手順。

project / libフォルダー内のすべてのjarを削除し、それらを外部jarとして参照します。プロジェクト内のAndroidの依存関係/参照ライブラリに重複がないか確認してください。

于 2013-03-13T10:26:32.143 に答える
0

プロジェクトでSherlockActionBarライブラリを使用するときに、この問題に対処しました。あなたは次のステップを行うことができます、それは私のために働きます。

プロジェクトを右クリックして、プロパティを選択します。ダイアログが表示されたら、左側のメニューで[Javaビルドパス]を選択します。右側のパネルで[Androidの依存関係]と[Androidプライベートライブラリ]を削除し、[OK]をクリックします。プロジェクトをクリーンアップします([プロジェクト]-> [クリーン]メニューを選択)。プロジェクトを右クリックし、[Androidツール]->[プロジェクトプロパティの修正]をもう一度選択します。コンピューターを再起動します。Eclipseを開き、apkHopeをエクスポートします。

于 2014-06-15T15:04:59.287 に答える