Help us understand the problem. What is going on with this article?

gradleのバージョンを上げた時のLogBaseSDK(旧LogPushSDK)で発生した問題メモ

More than 1 year has passed since last update.

背景

既存Projectで今更ながらgradleのバージョンを2.2.3 -> 3.1.3へ上げた時の備忘録
その中でもlogPush時代のSDKを使用していたことにより、結構困ったことになったためメモ

発生した問題

  • logPush → logBaseにSDKの名前が変わっていた。
  • NoSuchMethodError

解決

  • logPush → logBaseにSDKの名前が変わっていた。

gradleをアップデートしてプロジェクト内の古い参照を削除

app/build.gradle
implementation('net.p-lucky:logpush-android-sdk:2.0.0@aar') { transitive = true }

app/build.gradle
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

best-teacher-inc
SpeakingとWritingをネイティブ講師に学べる24時間体制のオンライン英会話「Best Teacher」を開発・運営するスタートアップ
https://www.best-teacher-inc.com
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away