web-dev-qa-db-ja.com

外部JARで "Dalvik形式への変換がエラー1で失敗しました"

Eclipseの私のAndroidアプリケーションでは、次のようなエラーが出ます。

予想外のトップレベルの例外:
Java.lang.IllegalArgumentException:すでに追加されています:Lorg/xmlpull/v1/XmlPullParser;
....
Dalvik形式への変換がエラー1で失敗しました

このエラーは、プロジェクトに特定の外部JARファイルを追加したときにのみ表示されます。私は長い間可能な解決策を探しましたが、可能な解決策はどれもうまくいきません。私は1.5(私が使っている現在のバージョン)ではなくAndroid 1.6に変更しようとさえしました。

899
Michel

私はその問題を解決した。

これはJARファイルの競合です。

同じパッケージとクラスを含む2つのJARファイルがbuildpathにあるようです。

smack.jarAndroid_maps_lib-1.0.2

いずれかのJARファイルからこのパッケージを削除すると、問題が解決しました。

271
Michel

[プロジェクト]»[プロパティ]»[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を複数参照しているため、正しく構築できません。

誤ってまたは故意にクラスパスファイル内のものを手動で編集または追加した場合は、別の方法でこの問題が発生する可能性があります。コードが正常に動作します。それでも問題が解決しない場合は、こちらもチェックしてください。

825
user408841

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
126
Noah

署名されていないAndroidアプリケーションのエクスポート中にメニュー> [プロジェクト]> [自動的にビルド]をオフにすると、この問題を簡単に解決できます(Eclipse Android Developer Tools、ビルド:v22.0.1-685705)。その後、もう一度電源を入れるのを忘れないでください。

95
Ton Snoei

あなたがADTリビジョン12+を持っているならば、あなたは4.4 - > 4.6からあなたのproguardを更新するべきです( ここ の説明に従って)。また、...\bin\proguard.batファイルを元の形式のままにしておく必要があります。

Webからダウンロードし、ダウンロードしたパッケージのlibフォルダを次の場所にコピーするだけです。

[Android SDKインストールディレクトリ]\tools\proguard\lib

53
Kocus

EDIT(新しい解決策):

前の解決策は単に回避策であるように見えます。私はようやく問題を恒久的に解決することができました。私の場合、私のプロジェクトと私のプロジェクトで参照されているFacebookプロジェクトのAndroid-support-v4ファイルに不一致がありました。

私はリントチェックを実行することによってこのエラーを見つけました(Android Tools/Run Lint:Check for Common Errors)

私の以前の解決策:

私はこのサイトであらゆる可能な解決策を試しました - 何も助けになりませんでした!

最後に私はここで答えを見つけました: https://groups.google.com/forum/#!topic/actionbarsherlock/drzI7pEvKd4

簡単なステップ:

[プロジェクト] - > [自動的にビルド]のチェックを外します。

[プロジェクト] - > [クリーン]を選択し、ライブラリプロジェクトとアプリプロジェクトの両方をクリーンにします。

[自動ビルド]がまだ無効になっているときに、アプリを署名付きAPKとしてエクスポートします。

40
Paveliko

これは別のシナリオと解決策です。

最近ADT for Eclipseを更新した後にこの問題に遭遇した場合:

  1. あなたのアプリプロジェクトで、あなたのライブラリプロジェクトを指しているリンクされたソースフォルダをチェックしてください(それらは "LibraryName_src"の形式の名前を持っています)。
  2. それらのプロジェクトをすべて選択して右クリックし、 " ビルドパス " - > " ビルドパスから削除 "を選択します。
  3. プロジェクトからフォルダのリンクを解除する 」を選択し、「 はい 」をクリックします。
  4. プロジェクトをクリーン、再構築、および再デプロイします。

その理由は、以前のバージョンのADTがLibraryプロジェクトのソースフォルダを「子」プロジェクトにリンクしていたため、現在のADT/Dexの組み合わせがそのソリューションと互換性がなくなったためです。

編集:これは、Android Dev Blogのエントリ、具体的には によって確認されています - これは8番目以降の段落を参照してください。

30
mikołak

[プロジェクト]に移動し、[自動的にビルド]のチェックを外します。プロジェクトをエクスポートしようとするとエラーが消えます。

29
kgandroid

これは、おそらくEclipseの偶発的な迅速な修正が原因で、ビルドパスにAndroid.jarファイルが追加されている場合にも発生する可能性があります。右クリックして削除します プロジェクト - > ビルドパス - > ビルドパスの設定 - > Android.jar 、削除します。

27
Thomas Dignan

このエラーが発生するたびに、単にプロジェクトをクリーンアップするだけでうまくいきました。

25
BTR

すべてのソリューションを4時間テストした後に私が今日見つけた私自身の唯一のソリューションは、ここに提供されている多くのソリューションの組み合わせです。

  • EclipseのDeleteプロジェクト
  • プロジェクトフォルダから\bin\gen内のファイルを削除します
  • ルートプロジェクトフォルダ内の.classpathファイルへのライブラリへの参照を削除します。
  • コマンドラインでEclipseを再起動します。Eclipse -clean
  • Importプロジェクト
  • プロジェクトを右クリック - Properties> Java Build Path> Librariesを選択し、Android XX.Y以外のすべてを削除
  • 最後にcleanプロジェクト、自動構築を待つかBuild it
  • 起動して今それが動作します!少なくとも私にとっては...

私は一度にすべてのステップと多くの組み合わせを試してみましたが、一度にすべてのステップの連続のみがそれを作りました!二度とこれに直面しないことを願っています...

16
Darkendorf

まだこの問題を抱えていて、上記の答えを試してもエラーが出ている(私の場合)他の人たちのためだけに、私の解決策はEclipseからプロジェクトを削除して再度インポートすることでした。

これにより、参照されているライブラリにAndroidライブラリが再度追加されたため、2つのAndroid JARファイルが参照されるようになりました。したがって、そのうちの1つを削除して、正常にコンパイルされます。

解決策:Eclipse IDEからプロジェクトを削除してから再度インポートしてから、上記の解決策を確認してください。

14
Mido

今日この問題に遭遇しました。クリーニングと再構築は問題を解決しませんでした。プロジェクトを削除して再インポートしても役に立ちませんでした。

私はついに私の.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>
10
Joe Fernandez

私にとっては、追加のJAR参照が私のビルドパスに現れました。私はこれを削除しました、そしてそれは今働きます。

9
brux

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

  1. プロジェクトを右クリックして、プロパティを選択します。
  2. ダイアログが表示されたら、左側のメニューで[Java build path]を選択します。
  3. 右側のパネルから[Androidの依存関係]と[Androidのプライベートライブラリ]を削除し、[OK]をクリックします。
  4. プロジェクトをきれいにします(メニュープロジェクト - >きれいにするを選択します)。
  5. プロジェクトを右クリックして、Android Tools - > Fix project propertiesを選択します。
  6. もう一度プロジェクトをきれいにしてください。
  7. コンピュータを再起動してください
  8. オープンEclipseとエクスポートapk

お役に立てば幸いです。

8
Richard Mai

私の問題はADTバージョン12.0とProGuardの統合が原因でした。このバグはよく文書化されており、解決策は文書にあります。

解決策はこちら

ProGuardコマンドライン

8
Croc

Proguardを最新バージョンにアップデートすることで私はそれを解決しました。

ああ、助かった!

7
Asaf Pinhassi

私の場合、問題は実際にはOpenFeint APIプロジェクトにあります。 OpenFeintをライブラリプロジェクトとして追加しました。

library project]![1]![Enter image description here

それはビルドパスにも追加され、ADTツール16はこの場面でエラーを出します。

プロジェクトを右クリックしてビルドパスをクリックし、ビルドパスを設定してから画像を見て、ここからプロジェクトのOpenFeintを削除すれば完了です:)

Enter image description here

7
AZ_

他に何か見つけました。 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を使い始めたと思います。

7
Christine

一般的に、この問題はビルドパスに不要なJARファイルがあるときに発生するようです。

IntelliJ IDEA で作業中にこの問題に直面しました。私には、実行時にコンパイルされていた JUnit および Mockito ライブラリーを追加したことが原因でした。これはモジュールのプロパティで "testing"に設定する必要がありました。

7
mindreader

以前に提案された解決策のどれも私のために働きませんでした。私の場合は、ライブラリのソースコードフォルダの参照からライブラリのJARファイルの使用に切り替えたときに問題が発生しました。最初はAndroidアプリケーションプロジェクトのProperties\Android page\Libraryセクションの下にAndroidライブラリプロジェクトがリストされていて、そのライブラリはプロジェクトエクスプローラツリーでもライブラリソースディレクトリへのリンクとして比較されていました。

まず最初に、プロジェクトツリーからディレクトリリンクを削除し、JARライブラリをビルドパスに追加しましたが、これが例外を引き起こしました。

正しい手順は、(ビルドパスを元に戻してライブラリソースへの参照を元に戻した後)です。

  • アプリケーションプロジェクトのProperties\Androidページから参照を実際に削除して、ライブラリソースディレクトリのリンクを正しく削除します。

  • 通常どおり、ライブラリJARをアプリケーションプロジェクトのビルドパスに追加します。

6
superjos

リストされた解決策のどれも私のために働きませんでした。

ここで私は問題を抱えていました:

JSoup外部JARファイルを最初に "libs"という名前のソースフォルダに入れ、次にそれを右クリックして、 Build Path - > build pathに追加して、プロジェクトのパスに追加しました。これはDalvik変換エラーを投げました。それは私がそのJARファイルからのクラスを「既に含んでいた」と言いました。プロジェクトのディレクトリを見渡したところ、「すでに含まれていた」場所は実際にはbinディレクトリでした。 binディレクトリからJARファイルを削除し、Eclipseでプロジェクトを更新するとエラーが消えました。

6
Andrew

私はAndroid 1.6を使用していて、外部JARファイルを1つ持っていました。すべてのライブラリを削除し、プロジェクトを右クリックして Android Tools - > * Fix Project Properties(Android 1.6を追加)を選択してから、外部JARファイルを追加しました。

5
Jim Rhodes

私は同じ問題を抱えていたし、これらの解決策はどれもうまくいかなかった。最後に、コンソールでエラーがクラスの重複によるものであることを確認しました(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つを削除してみてください。

それは私のために働きました。

5
Seynorth

私にとっては、プロジェクトをきれいにしてもこの問題は解決されません。

しかし、Eclipseでプロジェクトを閉じてから再度開くと、そのような場合は修正されるようです。

5

私はこの問題に遭遇しましたが、私の解決策は2つありました。 1.) project - > properties - > Android の下にAndroidターゲットバージョンを追加する必要がありました。 2.)Googleの「サードパーティ製アドオン」がすべてない。 利用可能なパッケージ - > サードパーティ製アドオン - > Google Inc の下にあるAVD SDKマネージャをクリックします。私はすべてのSDKをダウンロードし、それが私の問題を解決しました。

5
THE_DOM

上記のすべての解決策は私にはうまくいきませんでした。コンパイル済みの.jarは使用していません。私はLVLとDalvikのエラーを使用していますが、それらはすべて市場ライセンスライブラリに関連しています。

メインプロジェクトを削除して再インポートする(既存のソースから新しいプロジェクトを作成する)ことで問題は解決しました。

5
olivierg

私はこの問題に遭遇しました。なぜなら、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>
5
Garret Wilson

プロジェクトをきれいにする

これでうまくいかない場合は、他の解決方法を試してください。

5
Yassin

私の場合

プロジェクト - >プロパティ - > Javaビルドパス - >順番にタブをエクスポート - > チェックを外す Android-support-v4.jar

5
Mufrah

ここの答えはどれも私の場合には役立たなかった。

私にとって問題は、mvn Eclipse:eclipseがAndroidライブラリプロジェクトへのプロジェクト参照であるクラスパスエントリを生成していたことでしたが、Eclipseビルドパス設定では 表示されない でした。つまり、ライブラリクラスは、隠しプロジェクトの参照から1回、およびリンクされたライブラリJARから1回、デクサーに2回配置されていました。

テキストエディタで.classpathを開き、プロジェクト要素を手動で削除する必要がありました。これで問題は解決しました。

4
Matthias

私はそれがすでに答えたことを知っています、しかしここに私の解決策がありました:

私のAndroidプロジェクトは Subversion リポジトリからのもので、私はちょうど新しいプロジェクトとしてCheckoutをしました。私は自分のライブラリ(AndroidとJava)をビルドパスに手動で追加しなければなりませんでした。そうしないとコンパイルできませんでした。それから私は上記のエラーを取得します。

私は新しいAndroidプロジェクトを作成し、そして手動で変更をコピーする必要がありました。

4
yuudachi

私の問題は 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をオフにすることでした。誰かに役立つことを願っています。

4
smok

この答えは基本的に多くの人が言おうとしていることですが、多くの人は理解できないかもしれません。そう...

「プロジェクトフォルダ内のどこかにJARファイルがあり、それをJavaパスライブラリとして追加した場合も、もう1つの理由が考えられます。パッケージエクスプローラには表示されないため、気付かれず、カウントされます2回、恐ろしいDalvikエラーが発生しました。」 1月2、12日6:23に回答しましたRashmi.B

意味:

たとえば、 lib フォルダにこれら2つのライブラリ(.jar)があるとします。 Libraries (.jar) in your *lib* folder

そして、これら2つのフォルダもビルドパスに追加されます。 Libraries in your build path

つまり、 は2回カウントされます ということで、エラーが発生します。

解決策:

  1. あなたのビルドパスからこれらのライブラリを削除してください _と_ "Android Dependencies"も削除してください。 Remove libs that are in your *lib* folder from the build path!
  2. すべてのプロジェクトをきれいにする
  3. プロジェクトをエクスポート
  4. 楽しい! :)
4
Tanasis

私の場合はエクステリアのjarファイルが追加されています。私はProject Propで外部のjarファイルの位置をAndroidの参照の先頭に移動しました---> Java buildPath ---> Project references

4
sha

私はそのクラスパスにprotobuf lite( Protocol Buffers Google)を含むプロジェクトと全く同じエラーを経験しました。その理由は、protobuf-lite.jarが私のクラスパスにあり、project-folderが以前のマシンに作成されていたことにあると思います。 Maven をダウンロードしてprotobuf-lite.jarファイルを再構築すると、それが私のプロジェクトにユーザーライブラリとして新しく追加されたので、すべてうまくいきました。

3
Jubei

私にとって問題なのは、 間違ったコンパイラ準拠レベル(1.7ではなく1.8)を設定したことです

これ 答えはそれを解決しました:

Project SDKセクションでは、Android SDKを追加するときにJava SDKを提供する必要があり、私のすべてのAndroid SDKはSDKとしてJava 8を使用するので、プロジェクトレベルが1.7の場合でも間違ったバージョンのクラスファイルを作成します。理由はわかっています、私はすべてがプロジェクトレベルで選択されていると思いました)。今私はSDK(Javaバージョン "1.x.0"部分)を変更しました。

3
Luigi04

個人的には、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"ツールを使用して自動的に修正されました。

3
eightx2

私にとってうまくいったのは以下のとおりです。

  • ビルドを完全にきれいにする
  • Android.jarで見つけた余分なProject/Properties/Librariesファイルを削除しました。
3
leandroid

私はADT r14を使用していましたが、ライブラリプロジェクトを追加しようとすると、このエラーが発生しました。私にとってうまくいったのは、単にADTを最新バージョンに更新することでした。それは即座に問題を解決しました。私はstackoverflowに与えられたほとんどすべての回避策を試してみましたが、他には何も私のために本当にうまくいきませんでした。

3
Swati Rawat

私はADT 7を使用していますが、他の修正は機能しませんでした(しかし私はまだそれらをしました)。

それから私は別のプロジェクトからproguard.cfgをコピーして、それを単に古いADTプロジェクトフォルダに貼り付けました。そして wallah 、うまくいった。

2
societyofrobots

私はまた、異なるバージョンの同じjarファイルを追加しているときにもこの問題に直面しています。

2

このエラーの原因は

  1. jARファイルが複数ある。
  2. JARファイルに類似のクラスファイルがある場合、.dxフォーマットは解析できません。

溶液:

  1. 適切なJARファイルを作成して選択します。
  2. 最新のものを入手してください。
2
Thiyagu

私の場合、問題は2011年3月にEclipseとADTを更新した後に発生しました。私のプロジェクトでは、再構築のために問題を起こしていたJARを使用しています。すべてを試して、満足のいく解決策がないまま上下に検索するのに数日かかりました。どうやら.jarファイルへの二重参照がありました。

最後に、私 :

  1. ライブラリから参照を削除しました。
  2. アプリケーション内の物理ファイルフォームを削除しました。
  3. 「Add External Jars」を使用して.jar(プロジェクトの外部の別のディレクトリにあります)を取得しました。
  4. "clean"プロジェクトを実行しました。
  5. (ctrl)+(shift)+ Oでjarを呼び出すモジュールへの参照を更新する

そしてそれはついにコンパイルしました。

2

私は この答え の手順を実行しましたが、それでも解決策は得られませんでした。私はオンラインで検索し続け、あなたがAndroidデバイスがコンピュータに接続されている間にあなたがAPKをエクスポートしようとしているならあなたがこのエラーを受けることができることを発見しました。

デバイスを切断した後、プロジェクトを閉じ、コンピュータを再起動し、プロジェクトを開き、それをクリーニングすることで、これが起こったのは3回すべてうまくいきました。

1
jakewp11

私の場合は、USBから私の電話を抜くだけで、このエラーを修正することができました。

1
Nathaniel Jones

私は同じエラーがあり、上記のすべてを試しましたが、何も助けにはなりませんでした。

私のプロジェクトはGITソース管理システムに接続されており、Andoridアプリケーションへのエクスポート中にGIT関連のタスクがいくつかあることに気付きました。それから私はGITリポジトリへのすべての変更をコミットし、エラーは消えました。

そのため、ソース管理にGITを使用していて、それ以外に何も役に立たない場合は、すべての変更をGITリポジトリにコミットし(最終的にはアップストリームにプッシュする)、もう一度エクスポートしてみます。

1
Goran

これは通常、Eclipseが長い間実行されていたか、署名付きapkを正常に構築した後に発生します。

私のこれまでの経験に関する限り、それを直しただけで Eclipseを再起動します

1

エラー は、ついに修正されるはずです ADT 17/Tools r17のプレビューリリースの時点で!全部ではないにしても、少なくともそのいくつかの例。

1

ちょうどProject > Cleanが私のために働きました。

1
activesince93

プロジェクトをエクスポートしようとしたときにも、同じ問題がありました。コンソールには何も表示されません。

私にとって解決策はproguardを最新版にアップグレードすることでした、これが誰かを助けてくれることを願います。

1
Lectere

NewRelic usersの場合:

あなたがあなたのアプリにnewrelic jarを統合したならば、これはnewrelicバージョンがoutOf dateであるときに起こります。

解決策

  • Newrelic jarを最新バージョンに更新してください。 Eclipseでは、プロジェクトを右クリックしてnewrelicを更新してください。または、新しいバージョンを直接ダウンロードすることもできます。
1
amalBit

ほとんどの場合、この問題はProguardのバグのあるバージョンまたは破損したバージョンが原因で発生します。奇妙な理由でそれは公式のAndroid SDKマネージャーからインストールされることが多いです。

Proguardのbatファイルを編集しないでください さらなる問題を回避するために、この問題が発生した場合は Proguardの最新安定版をダウンロードしてください から 公式サイト

Android-sdk\tools\proguard

ダウンロードしたアーカイブから抽出した最新のproguardファイル.

開発者が自分のプロジェクトにライブラリを追加する可能性が最も高い場合は、そのライブラリが必要とされる可能性が最も高い場合は、すべての外部ライブラリの依存関係を削除しても意味がありません。

0
Silverstorm

このエラーは、ビルドパスから除外されたが除外リストから削除されなかったいくつかのファイルが原因で発生していました。

[プロジェクト] - > [プロパティ] - > [Javaビルドパス] - > [ソース]タブ - > project/srcフォルダ - > [除外]をダブルクリック - >プロジェクトに存在しなくなったファイルを削除します。

0
InsanityOnABun

私はEclipseのネオンとJDK 1.8でこの問題を抱えていました。 JDK 1.7に変更した後、問題は解決しました。

enter image description here

0
Eugen

何も助けにはならなかったが、提案された解決策 ここ は魅力のように働いた。

すなわち、-optimizations !code/allocation/variableという行をproguard-project.txtに追加します。

0
ercan

私はメインのApp Projectとそれが使用するAndroid Library Projectをきれいにしました。問題を解決しました

0

最新のAPIと最新のSDKおよびツールを使用して最新のEclipseをインストールしたばかりですが、数年後、このエラーは古くなりません。私はそれを把握するために一日を無駄にします。すべて試してみました。無駄に。このメッセージは非常に一般的なものであり、さまざまな問題が発生するためです。それで、 あるものによって指摘された解決策は他のもののために働かないでしょう

最初の良いアプローチは、Window> Preferences> Android> Buildの順に進み、 'パッケージ化とデキシングをスキップする'のチェックを外すことです。こうすることで、エクスポート時だけでなく、ビルド時に特定のエラーについてより多くの手がかりを得ることができます。

私の場合、"Dxサポートされていないクラスファイルのバージョン..."を受け取りました。私が見なかったこのエラーはここで報告されました。まあ、これに基づいて私は私が使用するいくつかの古いjarファイルが1.6でコンパイルされたものと1.7でコンパイルされたことを発見しました。そのため、デフォルトのIDEコンパイラ準拠レベルを1.6([ウィンドウ] - [設定] - [Java] - [コンパイラ])に変更しました。

0
PFROLIM

私はそれぞれすべてを試しましたが、何もうまくいきませんでした。

興味深いことに、proguardを使ってAndroidアプリケーションをエクスポートすると「エラー1でdalvik形式への変換に失敗しました」というエラーが表示されましたが、エクスポート中にproguardを使用しないとAPKは正常に作成されました。

最後に、私たちのAndroidプロジェクトのjarファイルの1つは、1.5 MBを超えるサイズの.classファイルを持っていました。このサイズは、この問題を引き起こしていました。

0
2intor

私は同じ問題を抱えていました。私がチェックしたとき、私は私が追加した外部jarファイルのそれぞれに1つ、同じ名前の2つのクラスがあることを見ました。私はその後jarファイルの1を削除する必要がありました。幸いにも私は私が削除した1のための別のjarファイルを手に入れた。

0
Nakul Sudhakar

私は別の方法で解決策を見つけた... https://stackoverflow.com/a/14948244/1014288

これのおかげであなたは削除やものを修正することはできません

0
Mashiah

これらの答えのどれも私のために働きませんでした。私の問題はJUnitとハムクレストが原因です。 Java.lang.IllegalArgumentExceptionも参照してください:すでに追加されています:Lorg/hamcrest/BaseDescription; Dalvik形式への変換がエラー1で失敗しました

0
Bevor

プロジェクトフォルダツリーの "lib"ディレクトリにすべての* .jarファイルを含めることをお勧めします。これにより、プロジェクトのプロパティに移動してビルドパスを定義する必要がなくなります。 "lib"はすでにビルドパスです

Android魔法のもう1つのケースは、他に何も機能しない場合は、マニフェストでversionCodeとversionNameを1ずつ増やすことです。

それは私のために働きました。

0
Josh

アプリでLeadbolt ads SDKを使用していて、「通知広告」と「表示広告」の両方を組み合わせている場合は、通知広告にpubxapp.jarの代わりにpubxappCom.jarを使用する必要があります。そうしないと、このエラーが発生します。

ハッピーコーディング!

0
Nick

ここで私には何もうまくいきませんでした、私はこの行を追加するために私のproguardファイルを変更しなければなりませんでした:

-keep class !mycode.** { *; }

これは私のパッケージではないコードをすべて保持します。

0
j2emanue

こんにちは以前はAndroid SDK Build tools 18.1.1Windows 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ビルドツールに格下げしました。そして私はこの問題を取り除きました。

誰かがこの問題に直面するなら彼らがそれを解決することができるように私はここに私の答えを投稿しています。

それは私をイライラさせました。希望は他人を助けるでしょう。

0
Neha Shukla

- Javaビルドパスからすべてのライブラリを削除します。そしてもう一度追加してください。 - あなたのプロジェクトをきれいにしなさい。

それを実行します。

0
Pratik Dasa

依存関係に関するGoogle APIはこの問題を引き起こします。削除した後はうまくいきます。

0
Ahmad