Eclipseの私のAndroidアプリケーションでは、次のようなエラーが出ます。
予想外のトップレベルの例外:
Java.lang.IllegalArgumentException:すでに追加されています:Lorg/xmlpull/v1/XmlPullParser;
....
Dalvik形式への変換がエラー1で失敗しました
このエラーは、プロジェクトに特定の外部JARファイルを追加したときにのみ表示されます。私は長い間可能な解決策を探しましたが、可能な解決策はどれもうまくいきません。私は1.5(私が使っている現在のバージョン)ではなくAndroid 1.6に変更しようとさえしました。
私はその問題を解決した。
これはJARファイルの競合です。
同じパッケージとクラスを含む2つのJARファイルがbuildpathにあるようです。
smack.jar
とAndroid_maps_lib-1.0.2
いずれかのJARファイルからこのパッケージを削除すると、問題が解決しました。
[プロジェクト]»[プロパティ]»[Javaビルドパス]»[ライブラリ]に移動して、 "Android X.Y"(私の場合は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
を複数参照しているため、正しく構築できません。
誤ってまたは故意にクラスパスファイル内のものを手動で編集または追加した場合は、別の方法でこの問題が発生する可能性があります。コードが正常に動作します。それでも問題が解決しない場合は、こちらもチェックしてください。
Windows 7ソリューション:
ファイル内のProGuardコマンドラインが原因で問題が発生していることを確認した
[Android SDKインストールディレクトリ]\tools\proguard\bin\proguard.bat
次の行を編集して問題を解決します。
call %Java_exe% -jar "%PROGUARD_HOME%"\lib\proguard.jar %*
に
call %Java_exe% -jar "%PROGUARD_HOME%"\lib\proguard.jar %1 %2 %3 %4 %5 %6 %7 %8 %9
署名されていないAndroidアプリケーションのエクスポート中にメニュー> [プロジェクト]> [自動的にビルド]をオフにすると、この問題を簡単に解決できます(Eclipse Android Developer Tools、ビルド:v22.0.1-685705)。その後、もう一度電源を入れるのを忘れないでください。
あなたがADTリビジョン12+を持っているならば、あなたは4.4 - > 4.6からあなたのproguardを更新するべきです( ここ の説明に従って)。また、...\bin\proguard.batファイルを元の形式のままにしておく必要があります。
Webからダウンロードし、ダウンロードしたパッケージのlibフォルダを次の場所にコピーするだけです。
[Android SDKインストールディレクトリ]\tools\proguard\lib
EDIT(新しい解決策):
前の解決策は単に回避策であるように見えます。私はようやく問題を恒久的に解決することができました。私の場合、私のプロジェクトと私のプロジェクトで参照されているFacebookプロジェクトのAndroid-support-v4ファイルに不一致がありました。
私はリントチェックを実行することによってこのエラーを見つけました(Android Tools/Run Lint:Check for Common Errors)
私の以前の解決策:
私はこのサイトであらゆる可能な解決策を試しました - 何も助けになりませんでした!
最後に私はここで答えを見つけました: https://groups.google.com/forum/#!topic/actionbarsherlock/drzI7pEvKd4
簡単なステップ:
[プロジェクト] - > [自動的にビルド]のチェックを外します。
[プロジェクト] - > [クリーン]を選択し、ライブラリプロジェクトとアプリプロジェクトの両方をクリーンにします。
[自動ビルド]がまだ無効になっているときに、アプリを署名付きAPKとしてエクスポートします。
これは別のシナリオと解決策です。
最近ADT for Eclipseを更新した後にこの問題に遭遇した場合:
その理由は、以前のバージョンのADTがLibraryプロジェクトのソースフォルダを「子」プロジェクトにリンクしていたため、現在のADT/Dexの組み合わせがそのソリューションと互換性がなくなったためです。
編集:これは、Android Dev Blogのエントリ、具体的には によって確認されています - これは8番目以降の段落を参照してください。
[プロジェクト]に移動し、[自動的にビルド]のチェックを外します。プロジェクトをエクスポートしようとするとエラーが消えます。
これは、おそらくEclipseの偶発的な迅速な修正が原因で、ビルドパスにAndroid.jar
ファイルが追加されている場合にも発生する可能性があります。右クリックして削除します プロジェクト - > ビルドパス - > ビルドパスの設定 - > Android.jar 、削除します。
このエラーが発生するたびに、単にプロジェクトをクリーンアップするだけでうまくいきました。
すべてのソリューションを4時間テストした後に私が今日見つけた私自身の唯一のソリューションは、ここに提供されている多くのソリューションの組み合わせです。
Delete
プロジェクト\bin
と\gen
内のファイルを削除します.classpath
ファイルへのライブラリへの参照を削除します。Eclipse -clean
Import
プロジェクトProperties
> Java Build Path
> Libraries
を選択し、Android XX.Y
以外のすべてを削除clean
プロジェクト、自動構築を待つかBuild
it私は一度にすべてのステップと多くの組み合わせを試してみましたが、一度にすべてのステップの連続のみがそれを作りました!二度とこれに直面しないことを願っています...
まだこの問題を抱えていて、上記の答えを試してもエラーが出ている(私の場合)他の人たちのためだけに、私の解決策はEclipseからプロジェクトを削除して再度インポートすることでした。
これにより、参照されているライブラリにAndroidライブラリが再度追加されたため、2つのAndroid JARファイルが参照されるようになりました。したがって、そのうちの1つを削除して、正常にコンパイルされます。
解決策:Eclipse IDEからプロジェクトを削除してから再度インポートしてから、上記の解決策を確認してください。
今日この問題に遭遇しました。クリーニングと再構築は問題を解決しませんでした。プロジェクトを削除して再インポートしても役に立ちませんでした。
私はついに私の.classファイルへの悪い追加にそれをさかのぼった。私は別の問題を解決しようとしたときにこれがプラグインツールによって追加されたと思います。
<classpathentry kind="lib" path="C:/dev/repository/Android-sdk-windows/platforms/Android-3/Android.jar">
<attributes>
<attribute name="javadoc_location" value="file:/C:/dev/repository/Android-sdk-windows/docs/reference"/>
</attributes>
<accessrules>
<accessrule kind="nonaccessible" pattern="com/Android/internal/**"/>
</accessrules>
私にとっては、追加のJAR参照が私のビルドパスに現れました。私はこれを削除しました、そしてそれは今働きます。
私のプロジェクトでSherlock ActionBarライブラリを使用するときに、この問題に対処しました。あなたは次のステップを行うことができます、それは私のために働きます。
お役に立てば幸いです。
Proguardを最新バージョンにアップデートすることで私はそれを解決しました。
C:\Program Files (x86)\Android\android-sdk\tools\proguard\
でしたああ、助かった!
私の場合、問題は実際にはOpenFeint APIプロジェクトにあります。 OpenFeintをライブラリプロジェクトとして追加しました。
。
それはビルドパスにも追加され、ADTツール16はこの場面でエラーを出します。
プロジェクトを右クリックしてビルドパスをクリックし、ビルドパスを設定してから画像を見て、ここからプロジェクトのOpenFeintを削除すれば完了です:)
他に何か見つけました。 AndroidはJARファイルに/libs
ディレクトリを使用します。 JARファイルで間違いを犯したときに、「Dalvik形式への変換がエラー1で失敗しました」というエラーが何度も表示されることがあります。
これで、Roboguiceを新しいバージョンにアップグレードしました。新しいJARファイルを/libs
ディレクトリに置き、クラスパスを新しいバージョンに切り替えました。それはDalvikエラーを引き起こしました。
Roboguice JARファイルの1つを/libs
フォルダから削除したところ、エラーは消えました。どうやら、AndroidはJavaビルドパスでどのファイルを指定しても、/libs
からすべてのJARファイルを取得します。正確には覚えていませんが、Androidはデフォルトで Android 4.0 (Ice cream sandwich、ICS)から/libs
を使い始めたと思います。
一般的に、この問題はビルドパスに不要なJARファイルがあるときに発生するようです。
IntelliJ IDEA で作業中にこの問題に直面しました。私には、実行時にコンパイルされていた JUnit および Mockito ライブラリーを追加したことが原因でした。これはモジュールのプロパティで "testing"に設定する必要がありました。
以前に提案された解決策のどれも私のために働きませんでした。私の場合は、ライブラリのソースコードフォルダの参照からライブラリのJARファイルの使用に切り替えたときに問題が発生しました。最初はAndroidアプリケーションプロジェクトのProperties\Android page\Libraryセクションの下にAndroidライブラリプロジェクトがリストされていて、そのライブラリはプロジェクトエクスプローラツリーでもライブラリソースディレクトリへのリンクとして比較されていました。
まず最初に、プロジェクトツリーからディレクトリリンクを削除し、JARライブラリをビルドパスに追加しましたが、これが例外を引き起こしました。
正しい手順は、(ビルドパスを元に戻してライブラリソースへの参照を元に戻した後)です。
アプリケーションプロジェクトのProperties\Androidページから参照を実際に削除して、ライブラリソースディレクトリのリンクを正しく削除します。
通常どおり、ライブラリJARをアプリケーションプロジェクトのビルドパスに追加します。
リストされた解決策のどれも私のために働きませんでした。
ここで私は問題を抱えていました:
JSoup外部JARファイルを最初に "libs"という名前のソースフォルダに入れ、次にそれを右クリックして、 Build Path - > build pathに追加して、プロジェクトのパスに追加しました。これはDalvik変換エラーを投げました。それは私がそのJARファイルからのクラスを「既に含んでいた」と言いました。プロジェクトのディレクトリを見渡したところ、「すでに含まれていた」場所は実際にはbin
ディレクトリでした。 bin
ディレクトリからJARファイルを削除し、Eclipseでプロジェクトを更新するとエラーが消えました。
私はAndroid 1.6を使用していて、外部JARファイルを1つ持っていました。すべてのライブラリを削除し、プロジェクトを右クリックして Android Tools - > * Fix Project Properties(Android 1.6を追加)を選択してから、外部JARファイルを追加しました。
私は同じ問題を抱えていたし、これらの解決策はどれもうまくいかなかった。最後に、コンソールでエラーがクラスの重複によるものであることを確認しました(1つは既存のプロジェクトにあり、もう1つは追加されたjarファイルにあります)。
Java.lang.IllegalArgumentException: already added: package/MyClassclass;
[2011-01-19 14:54:05 - ...]: Dx1 error; aborting
[2011-01-19 14:54:05 - ...] Conversion to Dalvik format failed with error 1
それで、あなたがあなたのプロジェクトで重複したクラスでjarを追加しているかどうか調べてください。もしそうなら、それらの1つを削除してみてください。
それは私のために働きました。
私にとっては、プロジェクトをきれいにしてもこの問題は解決されません。
しかし、Eclipseでプロジェクトを閉じてから再度開くと、そのような場合は修正されるようです。
私はこの問題に遭遇しましたが、私の解決策は2つありました。 1.) project - > properties - > Android の下にAndroidターゲットバージョンを追加する必要がありました。 2.)Googleの「サードパーティ製アドオン」がすべてない。 利用可能なパッケージ - > サードパーティ製アドオン - > Google Inc の下にあるAVD SDKマネージャをクリックします。私はすべてのSDKをダウンロードし、それが私の問題を解決しました。
上記のすべての解決策は私にはうまくいきませんでした。コンパイル済みの.jarは使用していません。私はLVLとDalvikのエラーを使用していますが、それらはすべて市場ライセンスライブラリに関連しています。
メインプロジェクトを削除して再インポートする(既存のソースから新しいプロジェクトを作成する)ことで問題は解決しました。
私はこの問題に遭遇しました。なぜなら、EclipseのAndroid-Maven-pluginは、推移的な参照と、2つのプロジェクト(Androidライブラリプロジェクトを含む)から2回参照された参照を認識していないためです。たとえMavenがこれらすべての面倒を見ることになっていても、私はhocus-pocusを使ってすべてを一度だけ含めるようにしなければなりませんでした。
たとえば、globalmentor-googleおよびglobalmentor-Android(後者はAndroidライブラリ)で使用されているコアライブラリglobalmentor-coreがあります。 globalmentor-Androidのpom.xml
では、依存関係を "提供"としてマークし、それが他動詞的に含まれていたライブラリから除外しなければなりませんでした:
<dependency>
<groupId>com.globalmentor</groupId>
<artifactId>globalmentor-core</artifactId>
<version>1.0-SNAPSHOT</version>
<!-- Android-maven-plugin can't seem to automatically keep this from being
included twice; it must therefore be included manually (either explicitly
or transitively) in dependent projects -->
<scope>provided</scope>
</dependency>
最後のアプリケーションpom.xml
では、正しいトリックを使用してインクルードパスを1つだけ許可する必要がありました。また、コアライブラリを明示的に含めるnotも同様です。
<!-- Android-maven-plugin can't seem to automatically keep this from being
included twice -->
<!-- <dependency> -->
<!-- <groupId>com.globalmentor</groupId> -->
<!-- <artifactId>globalmentor-core</artifactId> -->
<!-- <version>1.0-SNAPSHOT</version> -->
<!-- </dependency> -->
<dependency>
<groupId>com.globalmentor</groupId>
<artifactId>globalmentor-google</artifactId>
<version>1.0-SNAPSHOT</version>
<exclusions>
<!-- Android-maven-plugin can't seem to automatically keep this from
being included twice -->
<exclusion>
<groupId>com.globalmentor</groupId>
<artifactId>globalmentor-core</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.globalmentor</groupId>
<artifactId>globalmentor-Android</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
プロジェクトをきれいにする
これでうまくいかない場合は、他の解決方法を試してください。
私の場合
プロジェクト - >プロパティ - > Javaビルドパス - >順番にタブをエクスポート - > チェックを外す Android-support-v4.jar
ここの答えはどれも私の場合には役立たなかった。
私にとって問題は、mvn Eclipse:eclipse
がAndroidライブラリプロジェクトへのプロジェクト参照であるクラスパスエントリを生成していたことでしたが、Eclipseビルドパス設定では 表示されない でした。つまり、ライブラリクラスは、隠しプロジェクトの参照から1回、およびリンクされたライブラリJARから1回、デクサーに2回配置されていました。
テキストエディタで.classpathを開き、プロジェクト要素を手動で削除する必要がありました。これで問題は解決しました。
私はそれがすでに答えたことを知っています、しかしここに私の解決策がありました:
私のAndroidプロジェクトは Subversion リポジトリからのもので、私はちょうど新しいプロジェクトとしてCheckoutをしました。私は自分のライブラリ(AndroidとJava)をビルドパスに手動で追加しなければなりませんでした。そうしないとコンパイルできませんでした。それから私は上記のエラーを取得します。
私は新しいAndroidプロジェクトを作成し、そして手動で変更をコピーする必要がありました。
私の問題は Ant + ProGuard + AdMob SDKライブラリ+デバッグモードの統合にありました。 Antを使用してデバッグAPKをビルドし、libs/
ディレクトリにAdMob SDK JARを追加しました。 Eclipseは通常どおりデバッグAPKを生成しましたが、Antは生成できませんでした。次のようなエラーが出ました。
[適用]予期しないトップレベルの例外:[適用] Java.lang.IllegalArgumentException:すでに追加されています:Lcom/google/ads/AdActivity; [適用] com.Android.dx.dex.file.ClassDefsSection.add(ClassDefsSection.Java:123)
私はbuild.xml
でデバッグビルドのためにProGuardをオンにしました(デフォルトはオフです):
<target name="-debug-obfuscation-check">
<property name="proguard.enabled" value="true"/>
</target>
それが問題でした。どういうわけかProGuardとAdMob SDKはデバッグモードで共存しません。 ProGuardはAdActivity
クラスを難読化しなかったため、bin/proguard/obfuscated.jar
unobfuscatedに表示されましたが、同じクラスがAdMob SDK JARファイルに存在します。 EclipseはProGuardなしでデバッグAPKを構築していたので、うまくいきました。
だから私の解決策はbuild.xml
でデバッグビルドのためにProGuardをオフにすることでした。誰かに役立つことを願っています。
この答えは基本的に多くの人が言おうとしていることですが、多くの人は理解できないかもしれません。そう...
「プロジェクトフォルダ内のどこかにJARファイルがあり、それをJavaパスライブラリとして追加した場合も、もう1つの理由が考えられます。パッケージエクスプローラには表示されないため、気付かれず、カウントされます2回、恐ろしいDalvikエラーが発生しました。」 1月2、12日6:23に回答しましたRashmi.B
意味:
たとえば、 lib フォルダにこれら2つのライブラリ(.jar)があるとします。
そして、これら2つのフォルダもビルドパスに追加されます。
つまり、 は2回カウントされます ということで、エラーが発生します。
解決策:
私の場合はエクステリアのjarファイルが追加されています。私はProject Propで外部のjarファイルの位置をAndroidの参照の先頭に移動しました---> Java buildPath ---> Project references
私はそのクラスパスにprotobuf lite( Protocol Buffers Google)を含むプロジェクトと全く同じエラーを経験しました。その理由は、protobuf-lite.jar
が私のクラスパスにあり、project-folderが以前のマシンに作成されていたことにあると思います。 Maven をダウンロードしてprotobuf-lite.jar
ファイルを再構築すると、それが私のプロジェクトにユーザーライブラリとして新しく追加されたので、すべてうまくいきました。
私にとって問題なのは、 間違ったコンパイラ準拠レベル(1.7ではなく1.8)を設定したことです 。
これ 答えはそれを解決しました:
Project SDKセクションでは、Android SDKを追加するときにJava SDKを提供する必要があり、私のすべてのAndroid SDKはSDKとしてJava 8を使用するので、プロジェクトレベルが1.7の場合でも間違ったバージョンのクラスファイルを作成します。理由はわかっています、私はすべてがプロジェクトレベルで選択されていると思いました)。今私はSDK(Javaバージョン "1.x.0"部分)を変更しました。
個人的には、Eclipseプロジェクト内でproject.properties
ファイルを手動で編集することでこれを修正できました。
それは何でしたか:
target=Android-16
Android.library.reference.1=..\\..\\github\\ActionBarSherlock\\library
Android.library.reference.2=../../github/Android-numberpicker/library
変更したため、問題はなくなりました。
target=Android-16
Android.library.reference.1=../../github/ActionBarSherlock/library
Android.library.reference.2=../../github/Android-numberpicker/library
このファイルはnot "Fix Project Properties"ツールを使用して自動的に修正されました。
私にとってうまくいったのは以下のとおりです。
Android.jar
で見つけた余分なProject/Properties/Libraries
ファイルを削除しました。私はADT r14を使用していましたが、ライブラリプロジェクトを追加しようとすると、このエラーが発生しました。私にとってうまくいったのは、単にADTを最新バージョンに更新することでした。それは即座に問題を解決しました。私はstackoverflowに与えられたほとんどすべての回避策を試してみましたが、他には何も私のために本当にうまくいきませんでした。
私はADT 7を使用していますが、他の修正は機能しませんでした(しかし私はまだそれらをしました)。
それから私は別のプロジェクトからproguard.cfg
をコピーして、それを単に古いADTプロジェクトフォルダに貼り付けました。そして wallah 、うまくいった。
私はまた、異なるバージョンの同じjarファイルを追加しているときにもこの問題に直面しています。
このエラーの原因は
.dx
フォーマットは解析できません。溶液:
私の場合、問題は2011年3月にEclipseとADTを更新した後に発生しました。私のプロジェクトでは、再構築のために問題を起こしていたJARを使用しています。すべてを試して、満足のいく解決策がないまま上下に検索するのに数日かかりました。どうやら.jarファイルへの二重参照がありました。
最後に、私 :
そしてそれはついにコンパイルしました。
私は この答え の手順を実行しましたが、それでも解決策は得られませんでした。私はオンラインで検索し続け、あなたがAndroidデバイスがコンピュータに接続されている間にあなたがAPKをエクスポートしようとしているならあなたがこのエラーを受けることができることを発見しました。
デバイスを切断した後、プロジェクトを閉じ、コンピュータを再起動し、プロジェクトを開き、それをクリーニングすることで、これが起こったのは3回すべてうまくいきました。
私の場合は、USBから私の電話を抜くだけで、このエラーを修正することができました。
私は同じエラーがあり、上記のすべてを試しましたが、何も助けにはなりませんでした。
私のプロジェクトはGITソース管理システムに接続されており、Andoridアプリケーションへのエクスポート中にGIT関連のタスクがいくつかあることに気付きました。それから私はGITリポジトリへのすべての変更をコミットし、エラーは消えました。
そのため、ソース管理にGITを使用していて、それ以外に何も役に立たない場合は、すべての変更をGITリポジトリにコミットし(最終的にはアップストリームにプッシュする)、もう一度エクスポートしてみます。
これは通常、Eclipseが長い間実行されていたか、署名付きapkを正常に構築した後に発生します。
私のこれまでの経験に関する限り、それを直しただけで Eclipseを再起動します 。
エラー は、ついに修正されるはずです ADT 17/Tools r17のプレビューリリースの時点で!全部ではないにしても、少なくともそのいくつかの例。
ちょうどProject > Clean
が私のために働きました。
プロジェクトをエクスポートしようとしたときにも、同じ問題がありました。コンソールには何も表示されません。
私にとって解決策はproguardを最新版にアップグレードすることでした、これが誰かを助けてくれることを願います。
NewRelic usersの場合:
あなたがあなたのアプリにnewrelic jarを統合したならば、これはnewrelicバージョンがoutOf dateであるときに起こります。
解決策 :
ほとんどの場合、この問題はProguardのバグのあるバージョンまたは破損したバージョンが原因で発生します。奇妙な理由でそれは公式のAndroid SDKマネージャーからインストールされることが多いです。
Proguardのbatファイルを編集しないでください さらなる問題を回避するために、この問題が発生した場合は Proguardの最新安定版をダウンロードしてください から 公式サイト )
Android-sdk\tools\proguard
ダウンロードしたアーカイブから抽出した最新のproguardファイル.
開発者が自分のプロジェクトにライブラリを追加する可能性が最も高い場合は、そのライブラリが必要とされる可能性が最も高い場合は、すべての外部ライブラリの依存関係を削除しても意味がありません。
このエラーは、ビルドパスから除外されたが除外リストから削除されなかったいくつかのファイルが原因で発生していました。
[プロジェクト] - > [プロパティ] - > [Javaビルドパス] - > [ソース]タブ - > project/srcフォルダ - > [除外]をダブルクリック - >プロジェクトに存在しなくなったファイルを削除します。
何も助けにはならなかったが、提案された解決策 ここ は魅力のように働いた。
すなわち、-optimizations !code/allocation/variable
という行をproguard-project.txt
に追加します。
私はメインのApp Projectとそれが使用するAndroid Library Projectをきれいにしました。問題を解決しました
最新のAPIと最新のSDKおよびツールを使用して最新のEclipseをインストールしたばかりですが、数年後、このエラーは古くなりません。私はそれを把握するために一日を無駄にします。すべて試してみました。無駄に。このメッセージは非常に一般的なものであり、さまざまな問題が発生するためです。それで、 あるものによって指摘された解決策は他のもののために働かないでしょう 。
最初の良いアプローチは、Window> Preferences> Android> Buildの順に進み、 'パッケージ化とデキシングをスキップする'のチェックを外すことです。こうすることで、エクスポート時だけでなく、ビルド時に特定のエラーについてより多くの手がかりを得ることができます。
私の場合、"Dxサポートされていないクラスファイルのバージョン..."を受け取りました。私が見なかったこのエラーはここで報告されました。まあ、これに基づいて私は私が使用するいくつかの古いjarファイルが1.6でコンパイルされたものと1.7でコンパイルされたことを発見しました。そのため、デフォルトのIDEコンパイラ準拠レベルを1.6([ウィンドウ] - [設定] - [Java] - [コンパイラ])に変更しました。
私はそれぞれすべてを試しましたが、何もうまくいきませんでした。
興味深いことに、proguardを使ってAndroidアプリケーションをエクスポートすると「エラー1でdalvik形式への変換に失敗しました」というエラーが表示されましたが、エクスポート中にproguardを使用しないとAPKは正常に作成されました。
最後に、私たちのAndroidプロジェクトのjarファイルの1つは、1.5 MBを超えるサイズの.class
ファイルを持っていました。このサイズは、この問題を引き起こしていました。
私は同じ問題を抱えていました。私がチェックしたとき、私は私が追加した外部jarファイルのそれぞれに1つ、同じ名前の2つのクラスがあることを見ました。私はその後jarファイルの1を削除する必要がありました。幸いにも私は私が削除した1のための別のjarファイルを手に入れた。
私は別の方法で解決策を見つけた... https://stackoverflow.com/a/14948244/1014288
これのおかげであなたは削除やものを修正することはできません
これらの答えのどれも私のために働きませんでした。私の問題はJUnitとハムクレストが原因です。 Java.lang.IllegalArgumentExceptionも参照してください:すでに追加されています:Lorg/hamcrest/BaseDescription; Dalvik形式への変換がエラー1で失敗しました
プロジェクトフォルダツリーの "lib"ディレクトリにすべての* .jarファイルを含めることをお勧めします。これにより、プロジェクトのプロパティに移動してビルドパスを定義する必要がなくなります。 "lib"はすでにビルドパスです
Android魔法のもう1つのケースは、他に何も機能しない場合は、マニフェストでversionCodeとversionNameを1ずつ増やすことです。
それは私のために働きました。
アプリでLeadbolt ads SDKを使用していて、「通知広告」と「表示広告」の両方を組み合わせている場合は、通知広告にpubxapp.jarの代わりにpubxappCom.jarを使用する必要があります。そうしないと、このエラーが発生します。
ハッピーコーディング!
ここで私には何もうまくいきませんでした、私はこの行を追加するために私のproguardファイルを変更しなければなりませんでした:
-keep class !mycode.** { *; }
これは私のパッケージではないコードをすべて保持します。
こんにちは以前はAndroid SDK Build tools 18.1.1
とWindows XP
を持っていました。それから私のアプリは正しく実行されていました。
しかし、私は自分のシステムをWindows 7
に更新し、さらにAndroid SDK Build tools to 19
を最新の設定に更新しました。
しかし、私のプロジェクトはxercesImpl-2.9.1.jar
ファイルを持っているので、私が新しい/更新された設定で私のアプリケーションを実行し始めたとき、私は手に入れていました
Conversion to Dalvik format failed with error 1 while parsing org/Apache/xerces/impl/xpath/regex/ParserForXMLSchema.class
だから私はこの質問に言及されているが解決することができませんでしたすべての答えを経た。私は4日間疑問に思いました、そして私は私の命を救った this linkを見つけました、これを読んだ後、私は問題が19へのAndroid SDK BuildツールのxercesImpl-2.9.1.jar
によるものであることを知りました。
だから私はそれを18.1.1にAndroid SDKビルドツールに格下げしました。そして私はこの問題を取り除きました。
誰かがこの問題に直面するなら彼らがそれを解決することができるように私はここに私の答えを投稿しています。
それは私をイライラさせました。希望は他人を助けるでしょう。
- Javaビルドパスからすべてのライブラリを削除します。そしてもう一度追加してください。 - あなたのプロジェクトをきれいにしなさい。
それを実行します。
依存関係に関するGoogle APIはこの問題を引き起こします。削除した後はうまくいきます。