2016-04-28 5 views
5

私が持っているとAndroidプロジェクト。私は日食にそれをインポートします。それはうまく動作します。 しかし、私はAndroidのスタジオへの寄付、それをインポートする場合: -com.android.dex.DexIndexOverflowException:メソッドIDません[0、0xffffの]中:アンドロイドスタジオで65536

com.android.dex.DexIndexOverflowException:ない方法のIDを[0、0xffffの]:65536

エラー構築しながら。 プロジェクトがeclipseとAndroid Studioで異なる動作をすることも可能ですか?ケース(はい/いいえ)、どのように私はそれを解決します

の両方で、私は、依存関係のための私のbuild.gradleファイルをチェックしています。すべての依存関係は、私がEclipseで使用しているものと同じです。

答えて

6

アンドロイドは65536の方法の事前定義された上限を有します。

この、代わりにあなたが必要とするだけのサブセット、例えばデザインをフルGoogle Playのサービスのライブラリを使用している、cardview、マップなどの最も一般的な原因は、

そうでない場合は、を使用ライブラリを使用すると、より大きな制限が可能になります。 こちらをご覧ください: http://developer.android.com/tools/support-library/features.html#multidex

基本的にはちょうどこのGradleの中:アンドロイドStudioの

com.android.support:multidex:1.0.0 
+0

私はこのエラーを得たとき、私は、私の依存関係にこの行を使用していました。 "com.google.android.gmsをコンパイル:play-services:+ '" あなたがプレイサービスを述べたように、その理由があります。だから私はそれを削除し、今私はこのように "コンパイルファイル( 'libs/google-play-services_lib.jar')を使用しています。私は google-play-services_lib.jarをプロジェクトのlibsフォルダに追加しました。 –

+1

なし、 '.jar'忘れると使用に戻って、「いいえリソースはそれが(『整数/ google_play_services_version @』の値を持つ『価値』で)指定された名前と一致していない」 - :しかし、今、私は、エラーの下に取得しています'gradle'。私が意味したのは、 'compile 'com.google.androidでした。gms:play-services:+ ''には、すべてのプレイサービスライブラリが含まれていますが、必要なものだけを使用してください。たとえば、' compile' com.google.android.gms:play-services-maps:8.4.0'' Googleマップの場合はcom.google.android.gms:play-services-location:8.4.0 ''をコンパイルします。 – eoinzy

+1

もう1つの提案は、プロジェクト内の不要なプラグインを取り除くことです。少なくともこれは私のプロジェクトで全く同じエラーメッセージで私の問題を解決しました。不要なプラグインを削除することで、アプリに含まれるメソッドの数を効果的に減らすことができます。 –

9

... はファイル - でインスタント実行に

を有効にします> Preferences->ビルドし、実行、Deployment- >インスタント実行 - >ホットスワップのインスタント実行を有効にするチェック...

希望します。

+1

ありがとう - バングオン!私はちょうどサンプルアプリケーションを作成し、それは65536のメソッドの上限を横断すると信じられない小さなアプリだったので、私はエラーで驚いた。 – Ash

+0

これ!私は、プロジェクトが私の同僚のマシン上で実行されるので、受け入れられた答えで解決された問題を持っていないことを知っていました。このソリューションは完全に機能しました。 – arneson

3

Module build.gradleに次のように "multiDexEnabled true"を追加することで、私の問題は解決しました。

android { 
    ... 
    defaultConfig { 
     ... 
     multiDexEnabled true 

更新

上記のコードでは、私は(「マシュマロ」バージョンの下)を構築し、デバッグ・デバイス上で実行することができたが、「マシュマロ」デバイス上で、私は次のエラーを見つけました。

:6:エラー:パッケージandroid.support.multidexインポートandroid.support.multidex.MultiDexApplication存在しません。私はプロジェクトの「モジュール」build.gradleに次のように使用する必要が解決する

コンパイル「com.android.support:multidex:1.0.1」

関連する問題