#android #firebase #flutter #kotlin #flutter-dependencies
# #Android #firebase #флаттер #kotlin #flutter-зависимости
Вопрос:
В настоящее время создается приложение с Flutter. Я создал проблему на официальном github, но решил, что тоже спрошу здесь, если это круто.
Шаги для воспроизведения:
- запуск flutter — релиз
- Установка на устройство Android (воспроизводится на нескольких)
- Приложение зависает при попытке 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. Спасибо.