У меня есть флаттер-приложение для 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
У меня Flutter 3.7.9 и Apple M1 Pro Chip.
а пока попробуй dependency_overrides: geolocator_android: 4.1.4
Он отлично работал для предыдущих версий моего кода, поэтому я откатился и добавил новые изменения.
Как упоминалось в комментарии @Swanand.
Вы можете использовать
dependency_overrides: geolocator_android: 4.1.4
добавьте этот дополнительный бит к вашему pubspec.yaml
Я тоже столкнулся с той же проблемой, у вас есть решение?