33

Android でSmugFig SmugMug APIを使用しようとしています。J2SE 向けに設計されているので、Android でも動作するかどうかはわかりませんが、独自の API を作成するのではなく、試してみる価値があると考えました。

ただし、プロジェクトをロードすると、次のエラーが発生します。

Conversion to Dalvik format failed: Unable to execute dex: null

どのパッケージで失敗するかはわかりませんが、「Android Packaging Problem」だけですが、SmugFig を追加する前はこれを実行せず、ビルド パスに依存関係の JARS がありました。

どこを見ればいいですか?それとも、これらのライブラリでは機能しないというのは主に私ですか?

4

14 に答える 14

41

eclipse.ini に割り当てられたメモリを次のように増やすというブログ エントリを見つけました: -Xms128m -Xmx512m またはそれ以上ですが、これではうまくいきませんでした。

ただし、 Project > Clean を実行することを提案した別の投稿を見つけて、それを修正しました。最初にエミュレーターをシャットダウンせずにEclipseをシャットダウンすると発生すると思います。かなり不自由なバグ。今朝、解決策を探すのに数時間を費やしました... grrrrrrr :-(

于 2010-05-05T15:56:39.203 に答える
16

プロジェクト»プロパティ»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:23:49.943 に答える
6

Eclipse DDMS アップデート 8.0.0 が Android 2.3 のリリースとともに提供された後、このエラーが突然発生しました。

上記の提案はどれも役に立ちませんでしたが、問題の根本は参照されたプロジェクト (サーバー側とクライアント側の間で共有されるいくつかのクラス) であることが判明しました。

プロジェクト参照を削除し、一度参照されたプロジェクトのjarファイルをビルドして含めると、問題はなくなりました。

参照プロジェクトで DDMS 8.0.0 で何かが不正になったようです。

于 2010-12-06T21:33:29.227 に答える
5

私にとってうまくいったのは、のandroid.jar参照を削除することでした

ビルド パスの構成 -> Java ビルド パス -> ライブラリ

Android 3.0 ライブラリ リファレンスはそのままにしておきます。

于 2011-09-05T06:17:17.870 に答える
4

単純に、一部の JAR ファイルが占有するヒープ サイズが原因です...手動で削除できます...

それ以外の場合は、eclipse フォルダー内の Eclipse.ini ファイルを変更するのが最善の方法です.....

ファイルに -Xmx1024m を追加して、メモリサイズを 1 GB にします ...確かに動作します.....

于 2011-06-29T09:53:33.373 に答える
2

http://groups.google.com/group/android-developers/browse_thread/thread/3911749addce534d

彼らは現在、2.3 の修正をプッシュする作業を行っています。

編集: これは 2.3 で修正されました。Eclipse 経由で更新を入手してください。

于 2010-12-07T01:04:55.783 に答える
1

jar と eclipse 内で同じプロジェクトを参照しないようにしてください。たとえば、Eclipse に myproject というプロジェクトがあるとします。Android プロジェクトは、myproject プロジェクトとそこから生成された jar の両方を参照します。これにより、myproject および myproject.jar から生成されたクラスに対して dex を試行するため、dex を試行するとエラーが発生します。

于 2010-12-10T13:34:10.300 に答える
1

これだけが私の問題を解決します.Project > Clean

于 2012-09-07T07:26:04.303 に答える
0

ここでは、これらのエラーが巨大な .java ファイルによって引き起こされていることを示唆しています。

私は同じ問題を抱えていて、割り当てられたメモリを増やすとうまくいきました。

于 2010-07-05T10:37:36.987 に答える
0

前述の「修正」はどれもまったく効果がありませんでした。そもそも問題に対処していないため、当然のことです。

バグ自体は、Proguard との競合に起因します。バグ レポートは次のとおりです: http://code.google.com/p/android/issues/detail?id=18359修正するには、Proguard を手動で更新するだけです: http://sourceforge.net/projects/ proguard/ファイル/最新/ダウンロード?ソース = ファイル

于 2012-02-17T06:45:56.490 に答える