MapKit и Flutter - не подгружаются тайлы

Добавил в проект пакет yandex_maps_mapkit, и добавил контрол на виджет согласно документации Яндекса (ссылка). При запуске в эмуляторе контрол YandexMap отображается, даже виден логотип в правом-нижнем углу, но не грузится сама карта: введите сюда описание изображения

Я также локально запустил тестовые примеры приложения от Яндекса - в них карта отображается корректно. Между моим проектом, и этими тестовыми проектами не вижу разницы в настройках. Есть одно отличие - тестовые примеры запрашивают разрешение на использование данных геолокации, но разве это влияет на загрузку карты?

Секция разрешений в android/app/src/main/AndroidManifest.xml одинакова в моём и в тестовых проектах:

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>

Код Flutter также взят из документации - инициализация в точке входа, и создание контрола на виджете:

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
    
  await init.initMapkit(
    apiKey: 'YOUR_API_KEY'
  );
            
  runApp(const MyApp());
}
  
class MyApp extends StatefulWidget {
  const MyApp({super.key});
  
  @override
  State<MyApp> createState() => _MyAppState();
}
  
class _MyAppState extends State<MyApp> {
  
  MapWindow? _mapWindow;
  
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: YandexMap(onMapCreated: (mapWindow) => _mapWindow = mapWindow)
      )
    );
  }
}

Использую пакет yandex_maps_mapkit версии 4.8.2-beta

IDE Android Studio Ladybug 2024.2.1

Flutter 3.24.4


Ответы (1 шт):

Автор решения: blosser
import 'package:flutter/material.dart';
import 'package:yandex_maps_mapkit/init.dart' as init;
import 'package:yandex_maps_mapkit/mapkit.dart';
import 'package:yandex_maps_mapkit/mapkit_factory.dart';
import 'package:yandex_maps_mapkit/yandex_map.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();

  await init.initMapkit(
      apiKey: 'your key',
      locale: 'ru_RU'
  );

  runApp(const MyApp());
}

class MyApp extends StatefulWidget {
  const MyApp({super.key});

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {

  MapWindow? _mapWindow;

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
        home: Scaffold(
            body:
            YandexMap(onMapCreated: (mapwindow) {
              _mapWindow = mapwindow;
              mapkit.onStart();
            })
        )
    );
  }
}
→ Ссылка