Appium 1.9.1 issues setting location on Android Device

Appium allows to run arbitrary adb commands: https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/android/android-shell.md

Okay @mykola-mokhnach Kindly guide me on how to solve the parse error while getting the location, that is most important for now. Is there any chance of an issue when some mock location set by some other apps in device. But I’ve uninstalled the fake gps app but still the problem persists.

Is there a way to stop(clear) the mock location in device using appium?

I think it is not possible
Feel free to push a PR

@mykola-mokhnach
I’ve tried a lot, but I didn’t get a solution to fix the parse issue which I’ve mentioned above. Can you tell the possible causes?

No idea. Check the logcat output

Yeah I’ve checked but the logs are not clear. I’ve attached the minimal log.

11-02 17:44:10.593 4615 4675 D ListenerMonitor_FLP: addListener, packageName : io.appium.settings , listener count : 1
11-02 17:44:10.594 7450 7589 I RemoteCall: (SystemEventReceiver, 3357) packageMonitor @ intent : android.intent.action.PACKAGE_RESTARTED
11-02 17:44:10.596 3854 6933 D LocationManagerService: request 3750da6 gps Request[ACCURACY_FINE gps requested=+1m0s0ms fastest=+1m0s0ms] from io.appium.settings(10509 background)
11-02 17:44:10.596 3854 6933 D LocationManagerService: provider request: gps ProviderRequest[ON interval=+10m0s0ms]
11-02 17:44:10.596 3854 6933 I GnssLocationProvider: WakeLock acquired by sendMessage(SET_REQUEST, 0, com.android.server.location.GnssLocationProvider$GpsRequest@76393e7)
11-02 17:44:10.596 4615 4675 E RequestManager_FLP: [LocationManagerService] Location request 3750da6 gps interval=60000 from io.appium.settings
11-02 17:44:10.596 3854 4581 D GnssLocationProvider: setRequest ProviderRequest[ON interval=+10m0s0ms]
11-02 17:44:10.597 3854 6933 D PermissionMonitor: we received permission notification for rUid: 10509, rPid: 6597from rModuleFlag: 8
11-02 17:44:10.597 3854 6933 I PermissionMonitor: Binder.getCallingUid(): 5013
11-02 17:44:10.597 3854 6933 I PermissionMonitor: packageName: io.appium.settings
11-02 17:44:10.597 3854 5442 D ConnectivityService: filterNetworkStateForUid() uid: 5013 networkInfo: [type: WIFI - WIFI, state: CONNECTED/CONNECTED, reason: (unspecified), extra: “p15”, failover: false, available: true, roaming: false, metered: false]
11-02 17:44:10.597 6597 6597 D GPSTracker: GPS enabled. Getting FINE location
11-02 17:44:10.597 3854 4581 D GnssLocationProvider: startNavigating, singleShot is false
11-02 17:44:10.597 3854 4581 D GnssLocationProvider: setting position_mode to standalone
11-02 17:44:10.597 3854 4798 D LocationManagerService: getLastLocation: Request[ACCURACY_FINE gps requested=0 fastest=0 num=1]
11-02 17:44:10.598 3854 6933 E PermissionMonitor: Calling app is not pre-installed on system. Ignore its notification. pkgName: io.appium.settings, UserId: 0
11-02 17:44:10.598 3495 3495 D libgps : GpsiHook: API: gpsSetPositionMode(GpsiHookStateIdle: e,c,g)
11-02 17:44:10.598 3495 3495 D libgps : proxy__gps_set_position_mode(0, 0, 1000, 0, 0)
11-02 17:44:10.598 3495 3495 D libgps : GpsiHook: API: gpsStart(GpsiHookStateIdle: e,c,g)
11-02 17:44:10.598 3495 3495 D libgps : GpsiHookStateIdle : EXIT
11-02 17:44:10.598 3495 3495 D libgps : GpsiHookStateGps : ENTRY
11-02 17:44:10.598 3495 3495 D libgps : [proxy__gps_start][line = 1088]: called.
11-02 17:44:10.598 3495 3495 D libgps : GpsiHook: API: gpsStatusCb(GpsiHookStateGps: e,c,g)
11-02 17:44:10.599 3854 6933 E PermissionMonitor: We found matching pid. (uid, pid) : (10509, 6597
11-02 17:44:10.599 3854 6933 E PermissionMonitor: calling = io.appium.settings8, currentTime = 1541160850599, lastTime = 1541157617781
11-02 17:44:10.599 3854 6933 D PermissionMonitor: All conditions are satisfied, report app access now.
11-02 17:44:10.599 3854 4581 V GnssLocationProvider: reportStatus status: 3
11-02 17:44:10.599 3495 3495 D libgps : GpsiHook: API: gpsStatusCb(GpsiHookStateGps: e,c,g)
11-02 17:44:10.599 3854 4581 V GnssLocationProvider: reportStatus status: 1
11-02 17:44:10.600 3854 4581 D GnssLocationProvider: send an intent to notify GPS has been enabled or disabled mNavigating = true
11-02 17:44:10.601 3495 4587 D libgps : OnGpsExtensionMessage: message_id(11), data(0x775fe27044), size(4)
11-02 17:44:10.601 3495 4587 D libgps : [OnGpsExtensionMessage] Received: MSG_SET_LOG_LEVEL(2)
11-02 17:44:10.602 3495 4587 D libgps : OnGpsExtensionMessage: message_id(6), data(0x0), size(0)
11-02 17:44:10.607 6895 7098 I OpenGLRenderer: prepareTree mLayerUpdateQueue is not empty, size = 3
11-02 17:44:10.607 6895 7098 I OpenGLRenderer: name = RelativeLayout, size (1080, 1942)
11-02 17:44:10.607 6895 7098 I OpenGLRenderer: name = FrameLayout, size (1080, 1942)
11-02 17:44:10.607 6895 7098 I OpenGLRenderer: name = LinearLayout, size (1080, 1942)
11-02 17:44:10.612 3854 4493 D PermissionMonitor: we received permission notification for rUid: 10509, rPid: 6597from rModuleFlag: 8
11-02 17:44:10.612 3854 4493 I PermissionMonitor: Binder.getCallingUid(): 5013
11-02 17:44:10.612 3854 4493 I PermissionMonitor: packageName: io.appium.settings
11-02 17:44:10.616 3854 4493 E PermissionMonitor: Calling app is not pre-installed on system. Ignore its notification. pkgName: io.appium.settings, UserId: 0
11-02 17:44:10.617 3854 4581 D SamsungAlarmManager: setInexact Intent (T:2/F:8/AC:false) 20181102T174510 - CU:1000/CP:3854
11-02 17:44:10.617 7514 7514 D HealthDataStore: Service for HealthDataStore is connected
11-02 17:44:10.617 3854 4581 I GnssLocationProvider: WakeLock released by handleMessage(SET_REQUEST, 0, com.android.server.location.GnssLocationProvider$GpsRequest@76393e7)
11-02 17:44:10.618 4615 4676 D GnssStatusListener_FLP: GPS Engine started
11-02 17:44:10.619 3854 5442 D ConnectivityService: filterNetworkStateForUid() uid: 5013 networkInfo: [type: WIFI - WIFI, state: CONNECTED/CONNECTED, reason: (unspecified), extra: “p15”, failover: false, available: true, roaming: false, metered: false]
11-02 17:44:10.620 3854 4493 E PermissionMonitor: We found matching pid. (uid, pid) : (10509, 6597
11-02 17:44:10.620 3854 4493 E PermissionMonitor: calling = io.appium.settings8, currentTime = 1541160850620, lastTime = 1541160850599
11-02 17:44:10.620 3854 4493 I PermissionMonitor: isCalledPkg is in effect. Ignore.
11-02 17:44:10.622 4623 21833 E NetworkScheduler: Invalid component specified.
11-02 17:44:10.625 3854 5442 D StorageManagerService: getExternalStorageMountMode : 1
11-02 17:44:10.626 3854 5442 D StorageManagerService: getExternalStorageMountMode : 3
11-02 17:44:10.626 3854 5442 D StorageManagerService: getExternalStorageMountMode : final mountMode=1, uid : 10039, packageName : com.sec.android.service.health
11-02 17:44:10.626 3854 5442 I ApplicationPolicy: isApplicationExternalStorageWhitelisted:com.sec.android.service.health user:0
11-02 17:44:10.626 3854 5442 D ApplicationPolicy: isApplicationExternalStorageWhitelisted: DO is not enabled on user 0. Allowed.
11-02 17:44:10.626 3854 5442 D ActivityManager: package com.sec.android.service.health, user - 0 is SDcard whitelisted
11-02 17:44:10.626 3854 5442 I ApplicationPolicy: isApplicationExternalStorageBlacklisted:com.sec.android.service.health user:0
11-02 17:44:10.626 3854 5442 D ApplicationPolicy: isApplicationExternalStorageBlacklisted: DO is not enabled on user 0. Allowed.
11-02 17:44:10.632 7514 7514 D HealthDataStore: HealthConnectionErrorResult code : 9
11-02 17:44:10.635 3854 5528 D ConnectivityService: filterNetworkStateForUid() uid: 10030 networkInfo: [type: WIFI - WIFI, state: CONNECTED/CONNECTED, reason: (unspecified), extra: “p15”, failover: false, available: true, roaming: false, metered: false]
11-02 17:44:10.635 3854 4798 D ConnectivityService: filterNetworkStateForUid() uid: 10030 networkInfo: [type: WIFI - WIFI, state: CONNECTED/CONNECTED, reason: (unspecified), extra: “p15”, failover: false, available: true, roaming: false, metered: false]
11-02 17:44:10.644 7595 7595 E Zygote : isWhitelistProcess - Process is Whitelisted
11-02 17:44:10.645 3854 5442 I ActivityManager: Start proc 7595:com.sec.android.service.health/u0a39 for content provider com.sec.android.service.health/.cp.MigrationCpProvider
11-02 17:44:10.645 7595 7595 W SELinux : SELinux selinux_android_compute_policy_index : Policy Index[2], Con:u:r:zygote:s0 RAM:SEPF_SM-N950F_8.0.0_0002, [-1 -1 -1 -1 0 1]
11-02 17:44:10.647 7595 7595 I SELinux : SELinux: seapp_context_lookup: seinfo=platform, level=s0:c512,c768, pkgname=com.sec.android.service.health
11-02 17:44:10.647 7514 7514 D HealthConsole: Service for HealthDataConsole is connected
11-02 17:44:10.649 7514 7514 D HealthDataStore: Trying to connect with Health Service fails (error code: 9)
11-02 17:44:10.650 7514 7514 E HealthDataStore: disconnectService: Context instance is invalid
11-02 17:44:10.650 6895 7098 D OpenGLRenderer: eglDestroySurface = 0x773f512d20
11-02 17:44:10.655 7480 7480 D HealthDataStore: Service for HealthDataStore is connected
11-02 17:44:10.656 6895 6895 D ViewRootImpl@536bc97[SplashActivity]: Relayout returned: old=[0,0][1080,2220] new=[0,0][1080,2220] result=0x5 surface={valid=false 0} changed=true
11-02 17:44:10.659 7480 7480 D HealthDataStore: HealthConnectionErrorResult code : 9
11-02 17:44:10.660 3854 5528 D SamsungAlarmManager: Cancel Alarm calling from uid:10030 pid :4623 / op:PendingIntent{da9b92c: PendingIntentRecord{d21438f com.google.android.gms broadcastIntent}}
11-02 17:44:10.661 7480 7480 D HealthConsole: Service for HealthDataConsole is connected
11-02 17:44:10.663 7480 7480 D HealthDataStore: Trying to connect with Health Service fails (error code: 9)
11-02 17:44:10.664 7480 7480 E HealthDataStore: disconnectService: Context instance is invalid
11-02 17:44:10.665 4623 24541 W Conscrypt: Could not set socket write timeout: java.net.SocketException: Socket closed
11-02 17:44:10.665 4623 24541 W Conscrypt: at com.google.android.gms.org.conscrypt.Platform.setSocketWriteTimeout(:com.google.android.gms@[email protected] (040400-213742215):2)
11-02 17:44:10.665 4623 24541 W Conscrypt: at com.google.android.gms.org.conscrypt.ConscryptFileDescriptorSocket.setSoWriteTimeout(:com.google.android.gms@[email protected] (040400-213742215):2)
11-02 17:44:10.672 6895 7098 I OpenGLRenderer: prepareTree mLayerUpdateQueue is not empty, size = 2
11-02 17:44:10.672 6895 7098 I OpenGLRenderer: name = RelativeLayout, size (1080, 1942)
11-02 17:44:10.672 6895 7098 I OpenGLRenderer: name = LinearLayout, size (1080, 1942)
11-02 17:44:10.683 7031 7463 D NoSync : Called fsync
11-02 17:44:10.684 3854 4492 I ClientCertificateManager Service: fixContextInfoForMP() returning Caller uid: 10039 ,Container id: 0
11-02 17:44:10.685 3854 4492 I ClientCertificateManager Service: fixContextInfoForMP() returning Caller uid: 10039 ,Container id: 0
11-02 17:44:10.685 3854 4492 I ClientCertificateManager Service: ClientCertificateManager.isPremiumContainer() : false for user : 0
11-02 17:44:10.695 3854 5453 I ClientCertificateManager Service: fixContextInfoForMP() returning Caller uid: 10039 ,Container id: 0
11-02 17:44:10.695 3854 5453 I ClientCertificateManager Service: fixContextInfoForMP() returning Caller uid: 10039 ,Container id: 0
11-02 17:44:10.696 3854 5453 I ClientCertificateManager Service: ClientCertificateManager.isPremiumContainer() : false for user : 0
11-02 17:44:10.700 3854 5528 D SamsungAlarmManager: setInexact Intent (T:2/F:0/AC:false) 20181102T175200 - CU:10030/CP:4623
11-02 17:44:10.705 3854 4798 W StorageManager: getStorageLowBytes lowPercent : 5, lowBytes : 2853089689, maxLowBytes : 524288000
11-02 17:44:10.709 7595 7595 D ActivityThread: Added TimaKeyStore provider
11-02 17:44:10.712 3854 6933 I ActivityManager: DSS on for com.sec.android.service.health and scale is 1.0
11-02 17:44:10.712 3854 5528 D ConnectivityService: filterNetworkStateForUid() uid: 10189 networkInfo: [type: WIFI - WIFI, state: DISCONNECTED/BLOCKED, reason: (unspecified), extra: (none), failover: false, available: true, roaming: false, metered: false]
11-02 17:44:10.715 6895 7102 I System.out: (HTTPLog)-Static: isSBSettingEnabled false
11-02 17:44:10.726 3854 4798 D ConnectivityService: filterNetworkStateForUid() uid: 10030 networkInfo: [type: WIFI - WIFI, state: CONNECTED/CONNECTED, reason: (unspecified), extra: “p15”, failover: false, available: true, roaming: false, metered: false]
11-02 17:44:10.727 3854 4493 D ConnectivityService: filterNetworkStateForUid() uid: 10030 networkInfo: [type: WIFI - WIFI, state: CONNECTED/CONNECTED, reason: (unspecified), extra: “p15”, failover: false, available: true, roaming: false, metered: false]
11-02 17:44:10.730 3854 3882 W BroadcastQueue: Permission Denial: broadcasting Intent { act=android.net.conn.CONNECTIVITY_CHANGE flg=0x4000010 (has extras) } from null (pid=-1, uid=-1) requires com.facebook.permission.prod.FB_APP_COMMUNICATION due to registered receiver BroadcastFilter{53bf7cf u0 ReceiverList{32702e 7031 com.facebook.katana/10122/u0 remote:29622a9}}
11-02 17:44:10.730 6895 7073 I System.out: pool-3-thread-1 calls detatch()
11-02 17:44:10.733 3854 6933 D SamsungAlarmManager: Cancel Alarm calling from uid:10030 pid :4623 / op:PendingIntent{923c55c: PendingIntentRecord{d21438f com.google.android.gms broadcastIntent}}
11-02 17:44:10.740 6895 6895 W Verve : 2018-11-02 17:44:10.739;Warning;Ads;VerveBannerAdAdapter-loadBannerAd-onAdError;[Verve ads] Could not load ad because of: BAD_RESPONSE, cause: [invalid request], AdView@: 181752760
11-02 17:44:10.747 7595 7595 I zygote : no shared libraies, dex_files: 1
11-02 17:44:10.749 3854 4493 W StorageManager: getStorageLowBytes lowPercent : 5, lowBytes : 2853089689, maxLowBytes : 524288000
11-02 17:44:10.751 3854 4798 W StorageManager: getStorageLowBytes lowPercent : 5, lowBytes : 2853089689, maxLowBytes : 524288000
11-02 17:44:10.760 3854 4493 W StorageManager: getStorageLowBytes lowPercent : 5, lowBytes : 2853089689, maxLowBytes : 524288000
11-02 17:44:10.763 7031 7463 W fb4a.ServiceInfoParser: X.46T: Service com.facebook.attribution.AttributionIdService is missing meta key com.facebook.common.jobscheduler.compat.jobIds
11-02 17:44:10.763 7031 7463 W fb4a.ServiceInfoParser: X.46T: Service com.facebook.common.errorreporting.memory.MemoryDumpUploadService is missing meta key com.facebook.common.jobscheduler.compat.jobIds
11-02 17:44:10.763 7031 7463 W fb4a.ServiceInfoParser: X.46T: Service com.facebook.globallibrarycollector.GlobalLibraryCollectorService is missing meta key com.facebook.common.jobscheduler.compat.jobIds
11-02 17:44:10.763 7031 7463 W fb4a.ServiceInfoParser: X.46T: Service com.facebook.browser.lite.BrowserLiteIntentService is missing meta key com.facebook.common.jobscheduler.compat.jobIds
11-02 17:44:10.763 7031 7463 W fb4a.ServiceInfoParser: X.46T: Service com.facebook.browser.lite.BrowserLiteFallbackIntentService is missing meta key com.facebook.common.jobscheduler.compat.jobIds
11-02 17:44:10.763 7031 7463 W fb4a.ServiceInfoParser: X.46T: Service com.facebook.contacts.service.ContactLocaleChangeService is missing meta key com.facebook.common.jobscheduler.compat.jobIds
11-02 17:44:10.763 7031 7463 W fb4a.ServiceInfoParser: X.46T: Service com.facebook.account.login.notification.LoginNotificationService is missing meta key com.facebook.common.jobscheduler.compat.jobIds
11-02 17:44:10.763 7031 7463 W fb4a.ServiceInfoParser: X.46T: Service com.facebook.analytics.appstatelogger.AppStateIntentService is missing meta key com.facebook.common.jobscheduler.compat.jobIds
11-02 17:44:10.763 7031 7463 W fb4a.ServiceInfoParser: X.46T: Service com.facebook.analytics2.logger.LollipopUploadService is missing meta key com.facebook.common.jobscheduler.compat.jobIds
11-02 17:44:10.763 7031 7463 W fb4a.ServiceInfoParser: X.46T: Service com.facebook.appupdate.DownloadCompleteService is missing meta key com.facebook.common.jobscheduler.compat.jobIds
11-02 17:44:10.763 7031 7463 W fb4a.ServiceInfoParser: X.46T: Service com.facebook.backgroundlocation.process.BackgroundLocationGatheringService is missing meta key com.facebook.common.jobscheduler.compat.jobIds
11-02 17:44:10.763 7031 7463 W fb4a.ServiceInfoParser: X.46T: Service com.facebook.backgroundlocation.reporting.periodic.PeriodicSignalCollectorJobService is missing meta key com.facebook.common.jobscheduler.compat.jobIds
11-02 17:44:10.763 7031 7463 W fb4a.ServiceInfoParser: X.46T: Service com.facebook.battery.monitor.ContinuousBatteryMonitorService is missing meta key com.facebook.common.jobscheduler.compat.jobIds
11-02 17:44:10.764 7031 7463 W fb4a.ServiceInfoParser: X.46T: Service com.facebook.common.dextricks.DexOptimization$Service is missing meta key com.facebook.common.jobscheduler.compat.jobIds
11-02 17:44:10.764 7031 7463 W fb4a.ServiceInfoParser: X.46T: Service com.facebook.compost.service.CompostNotificationService is missing meta key com.facebook.common.jobscheduler.compat.jobIds
11-02 17:44:10.764 7031 7463 W fb4a.ServiceInfoParser: X.46T: Service com.facebook.conditionalworker.ConditionalWorkerService is missing meta key com.facebook.common.jobscheduler.compat.jobIds
11-02 17:44:10.764 7031 7463 W fb4a.ServiceInfoParser: X.46T: Service com.facebook.confirmation.service.BackgroundVoiceCallConfirmationService is missing meta key com.facebook.common.jobscheduler.compat.jobIds
11-02 17:44:10.764 7031 7463 W fb4a.ServiceInfoParser: X.46T: Service com.facebook.delayedworker.DelayedWorkerService is missing meta key com.facebook.common.jobscheduler.compat.jobIds
11-02 17:44:10.764 7031 7463 W fb4a.ServiceInfoParser: X.46T: Service com.facebook.displaytimeinvalidation.service.DisplayTimeBlockIntentService is missing meta key com.facebook.common.jobscheduler.compat.jobIds
11-02 17:44:10.764 7031 7463 W fb4a.ServiceInfoParser: X.46T: Service com.facebook.lite.messagingapps.FirstPartyMessagingAppsDetectionService is missing meta key com.facebook.common.jobscheduler.compat.jobIds
11-02 17:44:10.764 7031 7463 W fb4a.ServiceInfoParser: X.46T: Service com.facebook.fbservice.service.BlueServiceJobIntentService is missing meta key com.facebook.common.jobscheduler.compat.jobIds
11-02 17:44:10.765 7031 7463 W fb4a.ServiceInfoParser: X.46T: Service com.facebook.feed.platformads.AppInstallService is missing meta key com.facebook.common.jobscheduler.compat.jobIds

Hello, we have the same error ! Did you find a fix/solution? Thank you in advance

No @Vaso_Giamarelou It’s not working properly. I’m waiting for the next appium update. Lets see.

the only finding we have is this, we realize that io.appium.settings after some seconds is stopped. If you run it from your mobile apps and then run again the command will succeed but after some seconds will stop again :confused:

Not clear. Can you explain the process clearly? Where did you see the appium settings app has stopped working and how did you enable the app again? More information would be helpful.

@Vaso_Giamarelou What is the io.appium.settings version you’re using?
What’s your device model and android version?

Device Model : LGG6
Android Version: 8.0.0
io.appium.settings : 2.10.0

there are 2 options to enable io.appium.settings

A. in your mobile apps search : appium settings and click it, you will see a white screen with a title : Appium Settings for 1-2 , you hava sucessfully enable the appium settings,

B. enable it from command line : adb shell am start -n io.appium.settings/io.appium.settings.Settings

then you can run from terminal the command to change location something like :
adb shell am startservice -e longitude -76.79166 -e latitude -12.48047 io.appium.settings/.LocationService

the problem is after one minute max, if you run the command again will fail, and you have to re-enable the io.appium.settings

@Vaso_Giamarelou I’m not sure whether your understanding about appium setting app is correct. The appium settings app always open with blank screen and close. I believe this is the actual behaviour of settings app and it will help us to run the appium automation. We can’t open and use the appium app as I’ve seen so far. We can set the same via setLocation(). Actually I’ve commented here for get location using driver.

I think the right person to answer your question is @mykola-mokhnach

Yes @Anto_Rodrigo that’s exactly what I explained to you. I didn’t say that this is not the right behavior for appium settings app, the thing that you don’t understand is that for some reason io.appium.settings is not always enabled during automation test so its not possible to trigger any action like (setLocation) because they have stopped working and we realize that IF we trigger io.appim.settings either from the app or from terminal then for some time you are able to trigger any action that uses them, until they stopped again (that time is around 40-60 sec) . This behaviour is only in Android 8.0.0.

So to answer to your problem, the get location using driver uses the io.appium.settings but if io.appium.settings has stopped you cannot use it. The question is why this happens in android 8.0.0 ?

Please @mykola-mokhnach give us your opinion.

Thank you both

It might be there is some internal Android system mechanism, which kills the app. @KazuCocoa do you know more about it?

@Vaso_Giamarelou Thanks for the summary of your findings. Yes, you’re right, might be appium app stops working after some time. I am just activate the appium app once created the driver and switch back to my testing app using driver.activateApp(bundleId) function. It works fine.

But sometimes I’m getting the following exception while getting the location.

java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.Double
at org.openqa.selenium.remote.html5.RemoteLocationContext.location(RemoteLocationContext.java:44)
at io.appium.java_client.AppiumDriver.location(AppiumDriver.java:259)

Appium version: 1.12.0
In Android version 7 I’m getting the above exception sometimes
In Android version 9 I’m getting the following error

Original error: Cannot retrieve the current geo coordinates from the device. Make sure the Appium Settings application is up to date and has location permissions. Also the location services must be enabled on the device. Original error: Error executing adbExec

Seemed like the ClassCastExpection thrown when the altitude value is 0. I just checked in the appium log.

{“latitude”:13.09556,“longitude”:80.23475,“altitude”:0}

CC: @mykola-mokhnach