我面临这个问题java.lang.IllegalArgumentException: method ID not in [0, 0xffff]: 65536
,我决定从dex文件中排除一些方法。我gradle.build:方法限制64K每个Android中的dex文件
compile ('com.google.android.gms:play-services:+') {
exclude group: "com.google.android.gms.analytics"
exclude group: "com.google.android.gms.games"
exclude group: "com.google.android.gms.plus"
exclude group: "com.google.android.gms.drive"
exclude group: "com.google.android.gms.ads"
}
我认为这个代码片段是错误的,因为有错误method ID not in [0, 0xffff]...
。我如何排除Google Play服务的不必要部分?我只使用地图和GCM。
已更新。
谢谢reVerse。这是非常有用的代码。还有用于获取的方法计数脚本(也可以看到现有软件包的名称)https://gist.github.com/JakeWharton/6002797(source ./dex.sh; dex-method-count-by-package test.apk
)
使用的代码片段从反向的答案
Count of methods/Package
...
22484 com.google.android.gms
2 com.google.android.gms.actions
578 com.google.android.gms.ads
152 com.google.android.gms.ads.doubleclick
25 com.google.android.gms.ads.identifier
86 com.google.android.gms.ads.internal
86 com.google.android.gms.ads.internal.rawhtmlad
86 com.google.android.gms.ads.internal.rawhtmlad.client
88 com.google.android.gms.ads.mediation
4 com.google.android.gms.ads.mediation.admob
73 com.google.android.gms.ads.mediation.customevent
26 com.google.android.gms.ads.purchase
118 com.google.android.gms.ads.search
...
858 com.google.android.gms.games.internal.api
43 com.google.android.gms.games.internal.constants
8 com.google.android.gms.games.internal.data
31 com.google.android.gms.games.internal.events
9 com.google.android.gms.games.internal.experience
215 com.google.android.gms.games.internal.game
56 com.google.android.gms.games.internal.multiplayer
23 com.google.android.gms.games.internal.notification
80 com.google.android.gms.games.internal.player
86 com.google.android.gms.games.internal.request
...
之前使用的代码片段从反向的后答案,包:广告,游戏等被删除。
我还加了'exclude“com/google/android/gms/fitness/**”' – Vladimir 2014-09-02 09:44:39