2016-12-04 78 views
0

當我跟着這個鏈接的說明:https://developers.google.com/maps/documentation/android-api/start,以與谷歌地圖API一個簡單的Android應用程序,但我總是在我的手機上運行的應用程序下面這個錯誤:我得到:錯誤:任務':app:transformClassesWithDexForDebug'的執行失敗。讓谷歌地圖應用

Error:Execution failed for task ':app:transformClassesWithDexForDebug'. com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536

+1

您可能想要在應用程序類中擴展MultiDexApplication,或將其設置爲清單中的應用程序名稱 – Eenvincible

回答

1

乾淨並看到仍然錯誤是否有,如果是的話,

1.go到您的build.gradle文件。 添加multiDexEnabled true

defaultConfig { 
    multiDexEnabled true 
} 

2.in你的依賴增加compile 'com.android.support:multidex:1.0.1'

dependencies { 
compile 'com.android.support:multidex:1.0.1' 
} 

3.inside在menifest您的應用程序標記添加android:name="android.support.multidex.MultiDexApplication"

<application 
     android:name="android.support.multidex.MultiDexApplication" 
    .... 

4.使用您的發射這種重寫方法活動

@Override 
    protected void attachBaseContext(Context base) { 
     super.attachBaseContext(base); 
     MultiDex.install(this); 
    } 
+0

我不認爲您需要在啓動活動中重寫attachBaseContext。該部分已由MultiDexApplication完成。根據文檔,如果您覆蓋Application類,則應該只覆蓋attachBaseContext: https://developer.android.com/studio/build/multidex.html –

1

檢查您是依賴於整個Google Play服務,而不是僅依賴於地圖組件。從the documentation

If the number of method references in your app exceeds the 65K limit, your app may fail to compile. You may be able to mitigate this problem when compiling your app by specifying only the specific Google Play services APIs your app uses, instead of all of them. For information on how to do this, see Selectively compiling APIs into your executable.

例如(使用上次播放服務的版本),你build.gradle

dependencies { 
    compile 'com.google.android.gms:play-services:10.0.1' 
} 

對此

dependencies { 
    compile 'com.google.android.gms:play-services-maps:10.0.1' 
} 

如果添加其他播放服務模塊,您將改變這種需要單獨將它們添加到您的build.gradle

相關問題