我遇到了这个问题java.lang.IllegalArgumentException: method ID not in [0, 0xffff]: 65536
,我决定从dex文件中排除一些方法。我的gradle.build文件如下:
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
)在使用来自reVerse答案的代码片段之前。
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
...
使用reVerse的代码片段后,广告、游戏等包被删除了。