見出し画像

Flutter で firebase remote config を使おうとしたら Androidアプリが落ちる件

 こんにちは、りぼっちです。

ぼちぼちアプリ開発をしているのですが、開発中にAndroidアプリが落ちてしまう現象に遭遇しました。一応、github issue にも上がっていて対応待ちなのですが、なかなか対応されないので自分が行った回避方法について紹介します。

問題の詳細

こちらの問題の詳細については以下のようになります。

Flutterアプリの公式がリリースしている firebase_remote_config を使おうと

final RemoteConfig remoteConfig = await RemoteConfig.instance;

というインスタンスを生成する部分で、以下のようなエラーが発生します。

E/flutter (18539): [ERROR:flutter/shell/platform/android/platform_view_android_jni_impl.cc(43)] java.lang.NoSuchMethodError: No virtual method isDeveloperModeEnabled()Z in class Lcom/google/firebase/remoteconfig/FirebaseRemoteConfigSettings; or its super classes (declaration of 'com.google.firebase.remoteconfig.FirebaseRemoteConfigSettings' appears in /data/app/my.app-ItOxdJo5ljyanMFjofxlDg==/base.apk)

原因としては、アップデートで必要なメソッドを削除してしまったことが原因のようです。
(Google の公式パッケージでも、こんなことあるんですね。)

ってことで、困っている人も多く以下のように issue も立っています。
https://github.com/FirebaseExtended/flutterfire/issues/4035

一応、現時点(2020/12/15) での最新バーション 0.4.3 でも直ってなさそうでした。

解決方法

こちらは、FilledStacksというツールを提供している会社がクローンした firebase_remote_config を使うことで回避することができます。
(もちろん公式じゃないので自己責任で!)

やり方は、pubspec.yaml を以下のように修正します。

#  firebase_remote_config: ^0.4.3
 firebase_remote_config:
   git:
     url: https://github.com/FilledStacks/flutterfire.git
     path: packages/firebase_remote_config

オープンソース様様ですね〜!

こちらのコードを使うことで、一応はエラーを回避することができるようです。

ちなみに、app/build.gradle はこんな感じ

dependencies {
   implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"

   implementation platform('com.google.firebase:firebase-bom:26.1.1')
   implementation 'com.google.firebase:firebase-analytics'
   implementation 'com.google.firebase:firebase-config'
}

最後に

一応、公式も把握しているみたいで近々修正されるとは思いますが、取り急ぎ対応が必要な方は、上記の解決方法を検討してみてください〜!

この記事が気に入ったらサポートをしてみませんか?