47

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!

少しググったが何も出なかった。このエラーはどういう意味ですか?

4

7 に答える 7

54

私がそれをうまく機能させたと私が見つけた1つの解決策は、私のに追加dex.force.jumbo=trueすることproject.propertiesでした。

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

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

于 2012-11-19T16:31:52.473 に答える
14

同じ問題...ちょうど置く

dex.force.jumbo=true

project.properties の最初の行

于 2013-06-26T09:39:12.877 に答える
13

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

android {
    dexOptions {
        jumboMode = true
    }
}

新しい建物の前に「gradle clean」を忘れずに実行してください。

于 2015-03-21T01:40:08.793 に答える
5

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

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

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

于 2015-01-26T16:00:41.270 に答える
2

いくつかの説明を追加します:

これは、変更によってアプリケーション内の文字列定数の数が増加したときに、Eclipse が段階的にビルドしようとしたときに発生します。元の dex には非ジャンボ命令があり、マージされる新しい dex にはジャンボ命令があります。クリーンを実行すると、最初からビルドしたときに機能することが示されます。

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

于 2014-05-21T15:59:17.133 に答える
0

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

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

于 2014-12-18T07:02:16.743 に答える