2016-04-28 54 views
5

我有和android項目。當我將它導入日食。它工作正常。 但是,當我它導入到Android工作室其給予: -com.android.dex.DexIndexOverflowException:方法ID不在[0,0xffff]:65536在android studio

com.android.dex.DexIndexOverflowException:方法ID未在[0,爲0xFFFF]:65536

錯誤,同時建立。 在eclipse和Android Studio中,項目甚至可能表現不一樣。在這兩種情況下(是/否),我該如何解決它

我檢查了我的build.gradle文件的依賴關係。所有的依賴與我在eclipse中使用的相同。

回答

6

Android的方法的預定義上限爲65536

這樣做的最常見的原因是使用的,而不是你需要的子集,例如設計,cardview,地圖等

充分發揮谷歌服務庫,如果不是這種情況,那麼使用圖書館,這使得更大的限制。 在這裏看到: http://developer.android.com/tools/support-library/features.html#multidex

基本上只是在這樣的gradle:

com.android.support:multidex:1.0.0 
+0

我是用我的依賴這條線,當我得到了這個錯誤。 「compile」com.google.android.gms:play-services:+'「 但正如您所說的,播放服務是原因。所以我刪除它,現在我正在使用 「編譯文件('libs/google-play-services_lib.jar')」這樣。我在我的項目的libs文件夾中添加了 google-play-services_lib.jar。但是現在我得到了以下錯誤: - 「找不到與給定名稱匹配的資源('value'值爲'@ integer/google_play_services_version')」 –

+1

不,忘了'.jar'並返回使用'gradle'。我的意思是'編譯'com.google.android。gms:play-services:+''包含所有的play服務庫,但你只能使用你需要的,例如'compile'c​​om.google.android.gms:play-services-maps:8.4.0''對於Google地圖或「編譯」com.google.android.gms:play-services-location:8.4.0'' for Location。 – eoinzy

+1

另一個建議是擺脫你的項目中不必要的插件。至少這解決了我的問題在我的項目中完全相同的錯誤信息。通過刪除不必要的插件,可以有效地減少應用程序中包含的方法數量。 –

9

瞭解Android Studio ... 啓用即時運行

在文件 - >首選項>構建,執行,部署 - >即時運行 - >檢查啓用即時運行熱插拔...

希望它有幫助

+1

謝謝 - 轟!我剛剛創建了一個示例應用程序,我對這個錯誤感到驚訝,因爲它只是一個小應用程序,我不敢相信它會超過65536方法的上限。 – Ash

+0

This!我知道我沒有在接受的答案中解決問題,因爲該項目將在我的同事機器上運行。此解決方案完美運作。 – arneson

3

我的問題已通過在模塊build.gradle中添加「multiDexEnabled true」來解決。

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

更新

與上面的代碼,我是能夠建立和調試設備(以下「棉花糖」版本)運行,但對「棉花糖」的設備,我發現了以下錯誤。

:6:error:package android.support.multidex does not exist import android.support.multidex.MultiDexApplication;

要解決我必須在項目的'模塊'build.gradle中使用以下內容。

編譯「com.android.support:multidex:1.0.1」

相關問題