본문 바로가기
Framework/Flutter

[Flutter] RemoteConfig 값을 runApp 전에 가져올 때 생기는 에러

by IFLA 2022. 11. 28.

에러 문구

W/FirebaseRemoteConfig(17442): Could not update ABT experiments.
W/FirebaseRemoteConfig(17442): com.google.firebase.abt.AbtException: The Analytics SDK is not available. Please check that the Analytics SDK is included in your app dependencies.
W/FirebaseRemoteConfig(17442):     at com.google.firebase.abt.FirebaseABTesting.throwAbtExceptionIfAnalyticsIsNull(FirebaseABTesting.java:342)
W/FirebaseRemoteConfig(17442):     at com.google.firebase.abt.FirebaseABTesting.replaceAllExperiments(FirebaseABTesting.java:122)
W/FirebaseRemoteConfig(17442):     at com.google.firebase.remoteconfig.FirebaseRemoteConfig.updateAbtWithActivatedExperiments(FirebaseRemoteConfig.java:619)
W/FirebaseRemoteConfig(17442):     at com.google.firebase.remoteconfig.FirebaseRemoteConfig.processActivatePutTask(FirebaseRemoteConfig.java:571)
W/FirebaseRemoteConfig(17442):     at com.google.firebase.remoteconfig.FirebaseRemoteConfig.lambda$jaisR09Ce9JaIIQwbTp50mxBpwc(Unknown Source:0)
W/FirebaseRemoteConfig(17442):     at com.google.firebase.remoteconfig.-$$Lambda$FirebaseRemoteConfig$jaisR09Ce9JaIIQwbTp50mxBpwc.then(Unknown Source:2)
W/FirebaseRemoteConfig(17442):     at com.google.android.gms.tasks.zzc.run(com.google.android.gms:play-services-tasks@@18.0.1:3)
W/FirebaseRemoteConfig(17442):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
W/FirebaseRemoteConfig(17442):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
W/FirebaseRemoteConfig(17442):     at java.lang.Thread.run(Thread.java:764)

 

에러 발생 이유

Future<void> _setRemoteConfig() async {
  final remoteConfig = FirebaseRemoteConfig.instance;
  await remoteConfig.setConfigSettings(RemoteConfigSettings(
    fetchTimeout: const Duration(seconds: 10),
    minimumFetchInterval: Duration.zero,
  ));
  await remoteConfig.fetchAndActivate();  // 파이어베이스 서버에서 값 불러오는 데 필요 메소드
  final _minVersion = remoteConfig.getString('minVersion');
  if(_minVersion.elvis.isEmpty) {
    final _version = '1.0.16';
    await remoteConfig.setDefaults({'minVersion': _version});
    AppService.instance.minVersion = _version;
  } else {
    AppService.instance.minVersion = _minVersion;
  }
}
  • RemoteConfig에서 값을 가지고 올때 사용하는 fetchAndActivate() 메소드를 실행할 때 발생된다.
  • 에러메시지를 보면 Analytics SDK 를 사용할 수 없는 문구가 보인다. 플러그인 내에서 Test 구성 시 Firebase의 Analytics SDK를 참조하기 때문에 해당 플러그인을 찾을 수 없어서 생기는 문제다.
  • 이 에러 문구가 뜬다고 해서 해당 기능을 사용 못하는 건 아니다. 하지만 에러 문구가 표출되면 해결하는 게 좋기 때문에 해결을 해준다.

 

해결 방법

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation "androidx.multidex:multidex:2.0.1"
    implementation 'com.google.firebase:firebase-analytics'
}
  • android 폴더에에서 app 폴더 내에 있는 build.gradle 파일에 firebase-analytics 추가해서 Sync를 해준다.

댓글


\