Unact / yandex_mapkit

Flutter implementation of YandexMapkit
MIT License
132 stars 151 forks source link

Краш на некоторых девайсах с FlutterFragmentActivity при использовании setApiKey #330

Closed No1Ks closed 3 months ago

No1Ks commented 7 months ago

Код: `package _____

import androidx.annotation.NonNull import io.flutter.embedding.android.FlutterFragmentActivity import io.flutter.embedding.android.FlutterActivity import io.flutter.embedding.engine.FlutterEngine import com.yandex.mapkit.MapKitFactory import io.flutter.plugins.GeneratedPluginRegistrant

public class MainActivity : FlutterFragmentActivity() { override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) { MapKitFactory.setApiKey("НАШ_КЛЮЧ") super.configureFlutterEngine(flutterEngine) } }`

Ошибка: Fatal Exception: java.lang.AssertionError: setApiKey() should be called before initialize()! at com.yandex.mapkit.MapKitFactory.setApiKey(:15) at __________.MainActivity.configureFlutterEngine(MainActivity.java:7) at io.flutter.embedding.android.FlutterFragment.configureFlutterEngine(FlutterFragment.java:10) at io.flutter.embedding.android.FlutterActivityAndFragmentDelegate.onAttach(FlutterActivityAndFragmentDelegate.java:58) at io.flutter.embedding.android.FlutterFragment.onAttach(FlutterFragment.java:11) at androidx.fragment.app.Fragment.performAttach(Fragment.java:49) at androidx.fragment.app.FragmentStateManager.attach(FragmentStateManager.java:186) at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:134) at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:347) at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:81) at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:21) at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:38) at androidx.fragment.app.FragmentManager.dispatchActivityCreated(FragmentManager.java:11) at androidx.fragment.app.FragmentController.dispatchActivityCreated(FragmentController.java:4) at androidx.fragment.app.FragmentActivity.onStart(FragmentActivity.java:20) at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1433) at android.app.Activity.performStart(Activity.java:7923) at android.app.ActivityThread.handleStartActivity(ActivityThread.java:3332) at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:221) at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:201) at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:173) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2044) at android.os.Handler.dispatchMessage(Handler.java:107) at android.os.Looper.loop(Looper.java:224) at android.app.ActivityThread.main(ActivityThread.java:7562) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)

nikita-rr commented 7 months ago

Аналогично и с FlutterActivity

` package com.example.secret_app_flutter

import androidx.annotation.NonNull import io.flutter.embedding.android.FlutterActivity import io.flutter.embedding.engine.FlutterEngine import io.flutter.plugins.GeneratedPluginRegistrant import com.yandex.mapkit.MapKitFactory

class MainActivity: FlutterActivity() { override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) { MapKitFactory.setApiKey("8d681535-4073-44b9-98c7-9d1c78341a7b") super.configureFlutterEngine(flutterEngine) } } ` Получаю setApiKey() should be called before initialize()! если выйти из приложения кнопкой назад и запустить его обратно

DCrow commented 5 months ago

Добрый день!

Подскажите пожалуйста, после применения https://github.com/Unact/yandex_mapkit/issues/320#issuecomment-1855923900 все также падает?

No1Ks commented 4 months ago

Попробуем.