Сбой приложения Flutter в драгоценном месте на Android

У меня есть флаттер-приложение для Android, запрашивающее разрешение на определение местоположения.

случай 1) разрешение на определение местоположения не дается, приложение нормально открывается и запрашивает разрешение на определение местоположения, и все работает нормально

случай 2) разрешение примерного местоположения дано, приложение нормально открывается и все работает нормально

случай 3) (Проблема) дается разрешение на драгоценное местоположение, но приложение не открывается, оно показывает белый экран (заставка Android) в течение 10-20 секунд, а затем вылетает без надлежащего сообщения об ошибке.

<manifest xmlns:android = "http://schemas.android.com/apk/res/android"
    package = "com.example.appName">

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

Файл манифеста

Геолокатор Flutter lib

geolocator: ^9.0.2


Сообщение журнала

  F/crash_dump64(15410): crash_dump.cpp:487] failed to attach to thread 669: Permission denied
  F/crash_dump64(15539): crash_dump.cpp:487] failed to attach to thread 744: Permission denied

Логкат-сообщение

2023-03-30 21:28:38.174 29257-29283/com.example.app_namek I/Quality: stackInfo :----- pid 29257 at 2023-03-30 21:28:38.150 -----;Cmd line: com.example.app_namek;"main" prio=5 tid=2 TIMED_WAITING sysTid=29257;  at jdk.internal.misc.Unsafe.park(Native Method);  at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:234);  at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedNanos(AbstractQueuedSynchronizer.java:1079);  at java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireSharedNanos(AbstractQueuedSynchronizer.java:1369);  at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:278);  at com.google.android.gms.internal.location.zzau.getLastLocation(com.google.android.gms:play-services-location@@21.0.1:12);  at com.wongpiwat.trust_location.LocationAssistant.checkInitialLocation(LocationAssistant.java:494);  at com.wongpiwat.trust_location.LocationAssistant.access$600(LocationAssistant.java:57);  at com.wongpiwat.trust_location.LocationAssistant$8.onResult(LocationAssistant.java:730);  at com.wongpiwat.trust_location.LocationAssistant$8.onResult(LocationAssistant.java:722);  at com.google.android.gms.common.api.internal.BasePendingResult$CallbackHandler.handleMessage(com.google.android.gms:play-services-base@@18.1.0:6);  at android.os.Handler.dispatchMessage(Handler.java:106);  at android.os.Looper.loopOnce(Looper.java:233);  at android.os.Looper.loop(Looper.java:344);  at android.app.ActivityThread.main(ActivityThread.java:8212);  at java.lang.reflect.Method.invoke(Native Method);  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:584);  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1034);
2023-03-30 21:28:39.684 29257-29283/com.example.app_namek I/Quality: stackInfo :----- pid 29257 at 2023-03-30 21:28:39.679 -----;Cmd line: com.example.app_namek;"main" prio=5 tid=2 TIMED_WAITING sysTid=29257;  at jdk.internal.misc.Unsafe.park(Native Method);  at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:234);  at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedNanos(AbstractQueuedSynchronizer.java:1079);  at java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireSharedNanos(AbstractQueuedSynchronizer.java:1369);  at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:278);  at com.google.android.gms.internal.location.zzau.getLastLocation(com.google.android.gms:play-services-location@@21.0.1:12);  at com.wongpiwat.trust_location.LocationAssistant.checkInitialLocation(LocationAssistant.java:494);  at com.wongpiwat.trust_location.LocationAssistant.access$600(LocationAssistant.java:57);  at com.wongpiwat.trust_location.LocationAssistant$8.onResult(LocationAssistant.java:730);  at com.wongpiwat.trust_location.LocationAssistant$8.onResult(LocationAssistant.java:722);  at com.google.android.gms.common.api.internal.BasePendingResult$CallbackHandler.handleMessage(com.google.android.gms:play-services-base@@18.1.0:6);  at android.os.Handler.dispatchMessage(Handler.java:106);  at android.os.Looper.loopOnce(Looper.java:233);  at android.os.Looper.loop(Looper.java:344);  at android.app.ActivityThread.main(ActivityThread.java:8212);  at java.lang.reflect.Method.invoke(Native Method);  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:584);  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1034);
2023-03-30 21:28:48.004 29257-29269/com.example.app_namek I/app_name: Thread[6,tid=29269,WaitingInMainSignalCatcherLoop,Thread*=0xb4000071db901000,peer=0x136c0f38,"Signal Catcher"]: reacting to signal 3
2023-03-30 21:28:48.004 29257-29269/com.example.app_namek I/app_name:
2023-03-30 21:28:48.152 29257-29269/com.example.app_namek I/app_name: Wrote stack traces to tombstoned


Я тоже столкнулся с той же проблемой, у вас есть решение?

Swanand 03.04.2023 07:33

У меня Flutter 3.7.9 и Apple M1 Pro Chip.

Swanand 03.04.2023 12:40

а пока попробуй dependency_overrides: geolocator_android: 4.1.4

Swanand 04.04.2023 12:02

Он отлично работал для предыдущих версий моего кода, поэтому я откатился и добавил новые изменения.

TRex 04.04.2023 13:44
1
4
124
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Как упоминалось в комментарии @Swanand.

Вы можете использовать

dependency_overrides: geolocator_android: 4.1.4

добавьте этот дополнительный бит к вашему pubspec.yaml

Другие вопросы по теме