web-dev-qa-db-ja.com

Android:Dalvik形式への変換に失敗しました:dexを実行できません:null

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

プロジェクトをロードすると、次のエラーが表示されます。

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

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

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

33
Adam Haile

Eclipse.iniで割り当てられたメモリを-Xms128m -Xmx512mまたはそれ以上に増やすというブログエントリを見つけましたが、これは私には役立ちませんでした。

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

41
ken

プロジェクト"プロパティ"Java Build Path"Librariesに移動し、「Android XY」以外のすべてを削除します(私の場合Android 1.5)。[OK]をクリックします。 [プロジェクト]"[クリーン]"[以下で選択したプロジェクトをクリーン]"プロジェクトを選択して[OK]をクリックします。

プロジェクトフォルダーのどこかにJARファイルがあり(Admob JARファイルを自分のsrcフォルダーにコピーした)、それをJava Path Libraryとして追加しました。パッケージエクスプローラーの下に表示されないため、気づきませんが、2回カウントされ、恐ろしいDalvikエラー1が発生します。

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

16
Chu Chau

Eclipse DDMSアップデート8.0.0のリリース後Android 2.3にこのエラーが突然現れました。

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

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

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

6
monsta

私のために働いたのは、Android.jarリファレンスを削除することでした

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

Android 3.0ライブラリリファレンスを残します。

5
Das

その理由は、いくつかのJARファイルが占有するヒープサイズのためです...手動で削除できます...

それ以外の場合の最良のオプションは、Eclipseフォルダー内のEclipse.iniファイルを変更することです。

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

4
Regish K Nair

このエラーを削除するのに役立つ手順

  1. ユーザーライブラリ(外部ライブラリ)を削除します。
  2. プロジェクトをきれいにする
  3. 再び外部ライブラリを追加します
  4. プロジェクトを構築する
  5. プロジェクトを実行します。

これがあなたのお役に立てば幸いです。ありがとう。

3
Mallu Don

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

彼らは現在、2.3の修正プログラムのプッシュに取り組んでいます。

編集:これは2.3で修正され、Eclipse経由でアップデートを入手してください。

2
joe
-startup
plugins/org.Eclipse.equinox.launcher_1.2.0.v20110502.jar
--launcher.library
plugins/org.Eclipse.equinox.launcher.win32.win32.x86_1.1.100.v20110502
-showsplash
org.Eclipse.platform
--launcher.XXMaxPermSize
512m
--launcher.defaultAction
openFile
-XX:MaxPermSize=512m
-vmargs
-Xms512m
-Xmx1024m

私のために働く https://groups.google.com/forum/?fromgroups=#!topic/phonegap/yWePvssyiLE

2
Rubycon

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

1
salman khalid

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

1
charroch

New Relicを使用するプロジェクトの場合

Project r'click-> Update New Relicの下の[Update New Relic]でNew Relicを更新します。これは私のために働いた。

0
AndyW

ここ これらのエラーは巨大な.Javaファイルが原因であることを示唆しています。

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

0
Julio J.

/home/user/.Androidフォルダーを削除するのに役立ちます。 OS:Debian Wheezy 32ビット

0
GeX

前に述べた「修正」はどれも私にとってはうまくいきませんでしたが、そもそも問題に対処することすらしていないので、驚くことではありません。

バグ自体は、Proguardとの競合に起因しています。バグレポートは次のとおりです: http://code.google.com/p/Android/issues/detail?id=18359 そして修正するには、 Proguardを手動で更新する必要があります: http://sourceforge.net/projects/proguard/files/latest/download?source=files

0
b1nary.atr0phy