#背景
既存Projectで今更ながらgradleのバージョンを2.2.3 -> 3.1.3へ上げた時の備忘録
その中でもlogPush時代のSDKを使用していたことにより、結構困ったことになったためメモ
#発生した問題
- logPush → logBaseにSDKの名前が変わっていた。
- NoSuchMethodError
#解決
- logPush → logBaseにSDKの名前が変わっていた。
gradleをアップデートしてプロジェクト内の古い参照を削除
implementation('net.p-lucky:logpush-android-sdk:2.0.0@aar') { transitive = true }
↓
implementation('net.p-lucky:logbase-android-sdk:3.1.1@aar') { transitive = true }
基本的にLogPushの時のpush通知の実装方法に変更は無かった。
- NoSuchMethodError
Google play services 依存記述について
LogPush SDK 2.0.0の時の依存関係については書かれているが、LogBase SDK 3.1.3の依存関係は不明。
案の定、GooglePlayConsoleでβ版をリリースした際にNoSuchMethodErrorが発生したのでLogBaseに問い合わせたところ、
LogBase SDKは以下のライブラリのバージョンに依存していると回答をいただいた。
LogBase v3.1.1は
・com.google.android.gms:play-services-ads:11.6.0
・com.google.android.gms:play-services-gcm:11.6.0
・com.google.code.gson:gson:2.7
に依存しております。
※ちなみに上記ライブラリのverで再度GooglePlayConsoleのリリース前テストで10端末中8端末でNoSuchMethodErrorが発生したため未解決 & 再び問い合わせ中
エラー内容は以下内容、手元にある端末&エミュレーターでは一切確認できなかったがGooglePlayConsoleのリリース前テストで10端末中8端末で発生
FATAL EXCEPTION: Thread-9
Process: com.best_teacher_inc.android, PID: 10515
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の新しいバージョンのテストの不具合だとLogBaseの方に問い合わせたところ教えていただきました。
NoSuchMethodError Lcom/google/gson/Gson; upon retrofit response