Сбой сборки версии Flutter Android — проблема инициализации приложения FirebaseCore

#android #firebase #flutter #kotlin #flutter-dependencies

# #Android #firebase #флаттер #kotlin #flutter-зависимости

Вопрос:

В настоящее время создается приложение с Flutter. Я создал проблему на официальном github, но решил, что тоже спрошу здесь, если это круто.

Шаги для воспроизведения:

  1. запуск flutter — релиз
  2. Установка на устройство Android (воспроизводится на нескольких)
  3. Приложение зависает при попытке Firebase.initializeApp()

ПРИМЕЧАНИЕ Я лично не думаю, что это проблема firebase, но когда нам всем пришлось обновлять наше приложение для совместимости с AndroidX, firebase_message также призвал нас создать файл Application.kt для реализации его новейших пабов (которые мне нужно использовать из-за других зависимостей).

ЛЮБАЯ ПОМОЩЬ БУДЕТ ПРИНЯТА С БЛАГОДАРНОСТЬЮ. Я действительно думаю, что это как-то связано с файлами Kotlin. Я говорю это, ПОТОМУ ЧТО я ПЕРЕМЕСТИЛ вызов AWAIT FIREBASE> INITAPP в файле main.dart ниже, и я получил тот же результат, но вместо этого ссылался на SharedPrefs pub, который я использовал. Имеет смысл?

Как выглядят ВАШИ файлы Kotlin?

Главная.Файл Dart:

 
void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  await SharedPreferences.getInstance();
  Admob.initialize();
  await Admob.requestTrackingAuthorization();

  DynamicLinkService.handleDynamicLinks();
  SystemChrome.setPreferredOrientations(
      [DeviceOrientation.portraitDown, DeviceOrientation.portraitUp]).then(
    (_) {
      runApp(
        StringConstants(
          child: AuthProvider(auth: Auth(), child: MyApp()),
        ),
      );
    },
  );
}





 

pubspec.yaml

 version: 1.0.0 29

environment:
  sdk: ">=2.1.0 <3.0.0"

dependencies:
  flutter:
    sdk: flutter
  
  firebase_core: "^0.5.3"
  # Newly reworked plugins covered by this migration guide:
  firebase_auth: "^0.18.4"
  cloud_firestore: "^0.14.4"
  cloud_functions: "^0.7.2"
  firebase_storage: "^5.2.0"
  firebase_messaging: ^7.0.3  # Updated to work with new core only plugins (no new changes):
  firebase_admob: "^0.10.3"
  firebase_analytics: "^6.3.0"
  firebase_dynamic_links: "^0.6.3"
 

Вывод:

 E/flutter (27399): [ERROR:flutter/lib/ui/ui_dart_state.cc(184)] Unhandled Exception: MissingPluginException(No implementation found for method Firebase#initializeCore on channel plugins.flutter.io/firebase_core)
E/flutter (27399): #0      MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:160)
E/flutter (27399): <asynchronous suspension>
E/flutter (27399): #1      MethodChannel.invokeListMethod (package:flutter/src/services/platform_channel.dart:348)
E/flutter (27399): <asynchronous suspension>
E/flutter (27399): #2      MethodChannelFirebase._initializeCore (package:firebase_core_platform_interface/src/method_channel/method_channel_firebase.dart:30)
E/flutter (27399): <asynchronous suspension>
E/flutter (27399): #3      MethodChannelFirebase.initializeApp (package:firebase_core_platform_interface/src/method_channel/method_channel_firebase.dart:75)
E/flutter (27399): <asynchronous suspension>
E/flutter (27399): #4      Firebase.initializeApp (package:firebase_core/src/firebase.dart:43)
E/flutter (27399): <asynchronous suspension>
E/flutter (27399): #5      main (package:instapray/main.dart:20)
E/flutter (27399): <asynchronous suspension>
E/flutter (27399): 
 

MainActivity.kt:

 
class MainActivity: FlutterActivity() {

}
 

Application.kt:

 import io.flutter.plugin.common.PluginRegistry
import io.flutter.plugin.common.PluginRegistry.PluginRegistrantCallback
import io.flutter.plugins.GeneratedPluginRegistrant
import io.flutter.plugins.firebasemessaging.FlutterFirebaseMessagingService

class Application:FlutterApplication(), PluginRegistrantCallback {

  
  override fun onCreate() {
    super.onCreate()
    FlutterFirebaseMessagingService.setPluginRegistrant(this)
  }

  
  override fun registerWith(registry:PluginRegistry) {
      io.flutter.plugins.firebasemessaging.FirebaseMessagingPlugin.registerWith(registry?.registrarFor("io.flutter.plugins.firebasemessaging.FirebaseMessagingPlugin"));
  }
}
 

Ответ №1:

Это потребовало обновления основных пабов Firebase. Спасибо.