web-dev-qa-db-ja.com

Android Eclipseのエラー: "dexを実行できません:新しいインデックス65799を非ジャンボ命令にマージできません!"

Eclipseを使用してOpenSAMLを使用するAndroidプロジェクトを試しています。ビルドパスに必要なすべてのjarファイルを追加しました。ここで、プログラムをAndroidアプリケーションとして実行すると、次のエラーが表示されます。

[2012-11-18 11:52:59 - Dex Loader] Unable to execute dex: Cannot merge new index 67075 into a non-jumbo instruction!
[2012-11-18 11:52:59 - MyTestProgram] Conversion to Dalvik format failed: Unable to execute dex: Cannot merge new index 67075 into a non-jumbo instruction!

私は少しグーグルで調べたが、何も起こらなかった。このエラーはどういう意味ですか?

47
Ripul

私が見つけた解決策の1つは、dex.force.jumbo=true わたしの project.properties

これは次の点で指摘されました: https://groups.google.com/forum/?fromgroups=#!topic/adt-dev/tuLXN9GkVas

この機能は以前のバージョンでは使用できなかったため、ADT 21を実行していることを前提としています。

54
Malachi

同じ問題...ただ置く

dex.force.jumbo=true

project.propertiesの最初の行

14
Rino

Gradleビルドを使用している場合は、dexOptionsをbuild.gradleに追加して、ジャンボモードを有効にします。

Android {
    dexOptions {
        jumboMode = true
    }
}

新しい建物の前に「gradle clean」を実行することを忘れないでください。

13
gary

私は同じ問題を抱えていましたが、私のIDEはIntelliJ IDEA 13.でした。そのバージョンでは、dex.force.jumbo命令はproject.propertiesファイルは無視されます。

有効にするには、設定|コンパイラ| Android DXに移動し、ジャンボモードを強制するオプション。

それがお役に立てば幸いです(これが、私が見つけたSO関連の唯一の質問です)。

6
Sebastiano

jumboMode=trueを追加するだけでは、私のgradleビルドでは機能しませんでした。ただし、これは機能しました(adt-devグループのXavierから、この領域に提出されたバグへの返信として引用されています)。

「プロジェクトでdexOptions.jumboModeがtrueに設定されていることを確認して、すべてのビルドフォルダーを手動で削除してから再度ビルドしてみてください。

ルートプロジェクトのビルドがクリーンタスクで削除されず、事前に定義されたライブラリに関する情報が含まれているという問題があります。

4
mobileasumma

説明を追加:

これは、変更によってアプリケーション内の文字列定数の数が増加したときに、Eclipseがインクリメンタルビルドを試みたときに発生します。元のdexには非ジャンボ命令があり、それに統合される新しいdexにはジャンボ命令があります。クリーンを実行すると、ゼロからビルドするときに機能することがわかります。

アプリケーション内の文字列の数が単調に増加している限り、増分ビルドは今後も機能します。

2

私は同じ問題を抱えていましたが、私の場合、「dex.force.jumbo = true」コマンドは問題を解決しません。 JDKとJREを更新しようとすると、問題が解決します。

この回答が役立つことを願っています

0
Fahmi Sidik