#概要
GooglePlayConsoleのリリース前テストで大半の端末でNoSuchMethodErrorが発生するが、実機では一切確認ができないため相当困った。
GsonBuilder.createとか Retrofit2のGsonConverterFactory.createで発生しているようだったのでgsonのバージョン依存かなと思って色々調べたりしたけど結局解決できなかったところ、問い合わせをしたLogBaseの方に原因を教えて頂きました。他にもつまづく人がいるかもしれないので記事に残しておきます。
FATAL EXCEPTION: Thread-9
java.lang.NoSuchMethodError: No direct method <init>(Lcom/google/gson/Gson;)V in class Lcom/google/gson/Gson$1; or its super classes (declaration of 'com.google.gson.Gson$1' appears in /data/app/com.google.android.apps.mtaas.crawler-1T77G3Bwbj_NvCEDDbl0Vg==/base.apk)
at com.google.gson.Gson.doubleAdapter(Unknown Source:7)
at com.google.gson.Gson.<init>(Unknown Source:103)
at com.google.gson.GsonBuilder.create(Unknown Source:75)
at net.p_lucky.logpop.MessageRuleDiskDataStore.<init>(Unknown Source:25)
at net.p_lucky.logpop.Injection.b(Unknown Source:2)
at net.p_lucky.logpop.MessageRuleUpdateService.handleResult(Unknown Source:4)
at net.p_lucky.logpop.MessageRuleUpdateService.a(Unknown Source:0)
at net.p_lucky.logpop.MessageRuleUpdateService$1.run(Unknown Source:23)
at java.lang.Thread.run(Thread.java:764)
#原因
GooglePlayConsoleの最新版のリリース前テストの不具合
#対処法
過去のリリース前テストを実行する
[リリース前レポート] → [設定] → [リリース前レポートのバージョン]
(バンドル名)の再署名が行われるリリース前レポートの生成を無効にするの右にあるスイッチをON
参照
NoSuchMethodError Lcom/google/gson/Gson; upon retrofit response