Android Flutter RevenueCat

[Flutter][Android][RevenueCat]アプリ内課金を行なった直後に No virtual method getSku() で落ちる件

RevenuCatのFlutterプラグインpurchase_flutterのバージョン3.9.3を使用して、アプリ内課金を行うとその直後に以下の例外が発生してアプリが強制終了します。

No virtual method getSku()Ljava/lang/String; in class Lcom/android/billingclient/api/Purchase; or its super classes (declaration of 'com.android.billingclient.api.Purchase' appears in /data/app/~~xCl5ZlazDyYqv4VPMsJnNg==/plant.identification.snap-HZYCA9GF94ar8lvpjvIVmQ==/base.apk) at com.dooboolab.flutterinapppurchase.AndroidInappPurchasePlugin$7.onPurchasesUpdated(AndroidInappPurchasePlugin.java:98)

getSkuメソッドがありません?そんなメソッド作ってないよ。

原因はAndroid向けにGoogleが提供している、アプリ内課金のBilling Library V3とV4の違いです。

getSkuメソッドはV3には存在していたのですが、V4では廃止になり、getSkusメソッドに変わりました。

つまりRevenuCatのプラグインとしてはV3前提でコーディングされているのに実際AndroidのネイティブメソッドをコールするときはなぜかV4前提で呼び出しをしてしまうため、「そんなメソッドはない」と怒られて落ちるのでした。

対処方法

V3前提でコードが書かれているpurchase_flutterバージョン3.3.1を使用することで本事象は解消されます。注意しましょう。

purchases_flutter: 3.3.1

こちらにも記載がありました。

 

 

-Android, Flutter, RevenueCat

© 2022 かずのアプリときどきキャンプ飯 Powered by AFFINGER5