Unact / yandex_mapkit

Flutter implementation of YandexMapkit
MIT License
134 stars 148 forks source link

Ошибка при создании нового приложения #150

Closed MushrooM1337 closed 3 years ago

MushrooM1337 commented 3 years ago

Здравствуйте. Столкнулся с ошибкой при создании нового приложения в Android studio. Создал Flutter проект, установил через Terminal "flutter pub add yandex_mapkit". После запуска в дебагере появилась ошибка:

java.lang.IllegalStateException: Trying to create a platform view of unregistered type: yandex_mapkit/yandex_map
    at io.flutter.plugin.platform.PlatformViewsController$1.createVirtualDisplayForPlatformView(PlatformViewsController.java:197)
    at io.flutter.embedding.engine.systemchannels.PlatformViewsChannel$1.create(PlatformViewsChannel.java:107)
    at io.flutter.embedding.engine.systemchannels.PlatformViewsChannel$1.onMethodCall(PlatformViewsChannel.java:59)
    at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:233)
    at io.flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(DartMessenger.java:84)
    at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java:865)
    at android.os.MessageQueue.nativePollOnce(Native Method)
    at android.os.MessageQueue.next(MessageQueue.java:326)
    at android.os.Looper.loop(Looper.java:160)
    at android.app.ActivityThread.main(ActivityThread.java:6669)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)

Команда flutter doctor выполняется без ошибок.

На других форумах был такой совет:

Результат, к сожалению тот-же.

Причем Ваш проект с примером работает как надо.

Код main.dart:

import 'package:flutter/material.dart';
import 'package:yandex_mapkit/yandex_mapkit.dart';

void main() {
  runApp(MaterialApp(home: MainPage()));
}

class MainPage extends StatelessWidget {
  YandexMapController? controller;

  void _showMessage(BuildContext context, Text text) {
    ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: text));
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        body: Column(children: <Widget>[
          Expanded(
              child: Container(
                  padding: const EdgeInsets.all(8),
                  child: YandexMap(
                    onMapCreated: (YandexMapController yandexMapController) async {
                      controller = yandexMapController;

                    },
                  ))),
        ]));
  }
}

Подскажете что с этим делать?

DCrow commented 3 years ago

Добрый день!

Вы полностью выполнили все шаги как написано в README? В особенности файл android/app/src/main/.../MainActivity.kt

MushrooM1337 commented 3 years ago

Да, спасибо. Теперь ошибки нет. Но теперь карта не показывается, показываются только клетки на белом фоне. Видно, что происходит позиционирование, но сама карта не показывается. Можете с этим тоже помочь?

DCrow commented 3 years ago

Если клетки, то значит не указан API ключ. Его надо получить тут, и потом заместо YOUR_API_KEY указать. Если после это все равно отображаются клетки, значит ключ еще не активирован. Надо либо подождать, либо обратиться в саппорт яндекса, чтобы они активировали

MushrooM1337 commented 3 years ago

Спасибо за помощь!