Unable to execute dex: method ID not in [0, 0xffff]: 65536エラーが発生した大きな Android プロジェクトがあります。皆さんの中には、以前にこの問題を確実に経験したことがある人もいると思います。アプリで参照されているメソッドが多すぎるため、これはエラーです。
私はオンラインでさまざまな情報源を探しましたが、これが最良の解決策である可能性があることがわかりました.
そして、私は次のことをしました:
- build.gradle
multiDexEnabled = true
のdefaultConfig
ブロックに追加されました。 次の依存関係を追加しました。
dependencies { compile 'com.android.support:multidex:1.0.0' }
App クラス内の次のコードをオーバーライドしました。
@Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); MultiDex.install(this); }
これでエラーはなくなりましたが、新しい問題が発生しました。アプリを実行すると、コンパイラはアプリのコンパイルと実行に 3 分以上かかり、最終的に次のエラーが表示されます。
UNEXPECTED TOP-LEVEL ERROR:
java.lang.OutOfMemoryError: Java heap space
メモリ使用量が多いためにこのエラーが発生することは理解していますが、解決方法がわかりません。Android Studio 1.0.2 と Android API 21 を使用しています。
ありがとう!
編集:
MonoDevelop で MonoDroid アプリをコンパイルする際に「OutOfMemoryError: java heap space」を修正する方法を既に確認しましたが、これは問題の原因をカバーしていません。また、私は Xamarin Studio を使用していません。
EDIT2:
正確な症状は次のとおりです。
コードをコンパイルすると、gradle コンソールに「匿名内部クラスの InnerClasses 属性を無視しています」という何百もの警告が表示されます (他のいくつかのスタックオーバーフローの回答では、深刻な警告ではないことが示唆されています)。カーソルがしばらく点滅し、約1分後にエラーが表示されます。