Kurviger Pro - No GPS - "Ihre Position ist nicht bekannt"

Hi,

last season in 2018 I initially installed Kurviger Pro App. I was really excited and used it a lot.

Now, as I had to figure out yesterday, after a few updates by PlayStore the app doesn’t work anymore:

  • Whenever I click on the location button the app tells me “Ihre Position ist nicht bekannt”, it doesn’t matter how long I wait
  • GPS on my device in general works well, i.e. apps like “GPS Status” and “OSMAND”

current configuration:

  • Kurviger Pro V1.9.1 (last updated on 05.06.2019)
  • Android 7.1.2 (LineageOS V14.1-20180129-NIGHTLY-bacon)
  • hardware: Oneplus One
  • Kernel V3.4.113

I already created an adb session as to gain some initial hints on this error and I found one suspicious stacktrace during application startup and some statements regarding location service:

06-06 14:23:53.122   888  3558 I ActivityManager: Start proc 24290:gr.talent.kurviger.pro/u0a102 for activity gr.talent.kurviger.pro/.MainActivity
06-06 14:23:53.176 24290 24290 I art     : Starting a blocking GC AddRemoveAppImageSpace
06-06 14:23:53.927 24290 24290 W Java7Support: Unable to load JDK7 types (annotations, java.nio.file.Path): no Java7 support added
06-06 14:23:53.970 21878 21878 I TTS     : Creating Google TTS service, version 3.15.18.200023596
06-06 14:23:53.973 24290 24323 I TextToSpeech: Sucessfully bound to com.google.android.tts
06-06 14:23:53.980 21878 24327 I TTS     : Initializing de-de-x-nfh-lstm-embedded from disk
06-06 14:23:54.182   888  3471 I qti_sensors_hal: LIS3DH Accelerometer: batch  15.00    inf
06-06 14:23:54.186   888  2377 I qti_sensors_hal: AK8963 Magnetometer: batch  15.00    inf
06-06 14:23:54.186   888  2377 I qti_sensors_hal: AK8963 Magnetometer: activate=1
06-06 14:23:54.213 24290 24290 I TextToSpeech: Connected to ComponentInfo{com.google.android.tts/com.google.android.tts.service.GoogleTTSService}
06-06 14:23:54.223 21878 21890 I TTS     : For default lang de-de is name de-DE-language (de-de-x-nfh-server)
06-06 14:23:54.223 24290 24290 I art     : Rejecting re-init on previously-failed class java.lang.Class<com.google.android.gms.common.SupportErrorDialogFragment>: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v4/app/DialogFragment;
06-06 14:23:54.223 24290 24290 I art     :   at void gr.talent.location.c.<init>(android.content.Context) (SourceFile:48)
06-06 14:23:54.223 24290 24338 I TextToSpeech: Set up connection to ComponentInfo{com.google.android.tts/com.google.android.tts.service.GoogleTTSService}
06-06 14:23:54.223 24290 24290 I art     :   at void gr.talent.location.b.<init>(android.content.Context) (SourceFile:25)
06-06 14:23:54.223 24290 24290 I art     :   at void gr.talent.location.service.LocationUpdatesService.onCreate() (SourceFile:204)
06-06 14:23:54.223 24290 24290 I art     :   at void android.app.ActivityThread.handleCreateService(android.app.ActivityThread$CreateServiceData) (ActivityThread.java:3216)
06-06 14:23:54.223 24290 24290 I art     :   at void android.app.ActivityThread.-wrap5(android.app.ActivityThread, android.app.ActivityThread$CreateServiceData) (ActivityThread.java:-1)
06-06 14:23:54.223 24290 24290 I art     :   at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1586)
06-06 14:23:54.223 24290 24290 I art     :   at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:102)
06-06 14:23:54.223 24290 24290 I art     :   at void android.os.Looper.loop() (Looper.java:154)
06-06 14:23:54.223 24290 24290 I art     :   at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6186)
06-06 14:23:54.223 24290 24290 I art     :   at java.lang.Object java.lang.reflect.Method.invoke!(java.lang.Object, java.lang.Object[]) (Method.java:-2)
06-06 14:23:54.223 24290 24290 I art     :   at void com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run() (ZygoteInit.java:889)
06-06 14:23:54.223 24290 24290 I art     :   at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:779)
06-06 14:23:54.223 24290 24290 I art     : Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.v4.app.DialogFragment" on path: DexPathList[[zip file "/data/app/gr.talent.kurviger.pro-1/base.apk"],nativeLibraryDirectories=[/data/app/gr.talent.kurviger.pro-1/lib/arm, /data/app/gr.talent.kurviger.pro-1/base.apk!/lib/armeabi-v7a, /system/lib, /vendor/lib]]
06-06 14:23:54.223 24290 24290 I art     :   at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:56)
06-06 14:23:54.223 24290 24290 I art     :   at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:380)
06-06 14:23:54.223 24290 24290 I art     :   at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
06-06 14:23:54.223 24290 24290 I art     :   at void gr.talent.location.c.<init>(android.content.Context) (SourceFile:48)
06-06 14:23:54.223 24290 24290 I art     :   at void gr.talent.location.b.<init>(android.content.Context) (SourceFile:25)
06-06 14:23:54.224 24290 24290 I art     :   at void gr.talent.location.service.LocationUpdatesService.onCreate() (SourceFile:204)
06-06 14:23:54.224 24290 24290 I art     :   at void android.app.ActivityThread.handleCreateService(android.app.ActivityThread$CreateServiceData) (ActivityThread.java:3216)
06-06 14:23:54.224 24290 24290 I art     :   at void android.app.ActivityThread.-wrap5(android.app.ActivityThread, android.app.ActivityThread$CreateServiceData) (ActivityThread.java:-1)
06-06 14:23:54.224 24290 24290 I art     :   at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1586)
06-06 14:23:54.224 24290 24290 I art     :   at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:102)
06-06 14:23:54.224 24290 24290 I art     :   at void android.os.Looper.loop() (Looper.java:154)
06-06 14:23:54.224 24290 24290 I art     :   at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6186)
06-06 14:23:54.224 24290 24290 I art     :   at java.lang.Object java.lang.reflect.Method.invoke!(java.lang.Object, java.lang.Object[]) (Method.java:-2)
06-06 14:23:54.224 24290 24290 I art     :   at void com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run() (ZygoteInit.java:889)
06-06 14:23:54.224 24290 24290 I art     :   at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:779)
06-06 14:23:54.224 24290 24290 I art     : 
06-06 14:23:54.232 24290 24290 D LocationUpdatesService: in onBind()

(SNIP)

06-06 14:23:54.495 24290 24290 D LocationUpdatesService: Requesting location updates
06-06 14:23:54.496 24290 24290 D a       : Did not remove updates for given LocationListener. Wasn't registered in this instance.
06-06 14:23:54.548   888  1550 I ActivityManager: Displayed gr.talent.kurviger.pro/.MainActivity: +1s477ms
06-06 14:23:54.598 24290 24290 D LocationUpdatesService: Service started
06-06 14:23:54.621  3379  3774 W GCoreFlp: No location to return for getLastLocation()
06-06 14:23:54.632  3379  3774 W GCoreFlp: No location to return for getLastLocation()
06-06 14:23:54.644   888  3523 I GnssLocationProvider: WakeLock acquired by sendMessage(3, 0, com.android.server.location.GnssLocationProvider$GpsRequest@5737f39)
06-06 14:23:54.644   888  1542 I GnssLocationProvider: WakeLock released by handleMessage(3, 0, com.android.server.location.GnssLocationProvider$GpsRequest@5737f39)

My Android-Dev times are over for quite some time now, so maybe this doesn’t mean anything.
However I’ll be grateful for any hints on this issue.

best regards,
Matze

1 Like

Thanks for the detailed report, it’s very interesting.

Can you copy what the info screen in “Settings | About” shows?

Stacktrace mentions “possible” issues due to not be a regular Android but a custom ROM (seems there are missing parts), but that could mean nothing too.

unfortunately I can currently add only one image in the post:

Kurviger 1.9.3 integrates a revised location service for higher accuracy and better battery performance (based on Google Location Services).

Your device / rom seems compatible (fused location is on), but eventually it cannot work probably due to some missing elements in the specific rom(?). And the fallback doesn’t seem to be triggered too.

Note that we have tested devices with LineageOS and app works fine, so something seems wrong with the specific rom version.

Nevertheless it was in my plan already to add an option so that users can select if want to use the new fused location service or the previous more native one.

So please stay tuned for the next app version which should resolve the issue. :slightly_smiling_face:

Great news, thanks a bunch!

In any case there are newer LineageOS 16 (Android 9 Pie) and Open GApps for OnePlus One, if want to use latest versions where the problem could be solved.

Hi,

security wise I had to update my Android anyway, so I took the opportunity and updated to the latest LineageOS 16 (lineage-16.0-20190607-nightly-bacon-signed.zip).

Still the problem remains. Looking at the logcat I see that the stacktrace is gone, but the statements about LocationUpdatesService are basically the same, except for these warnings (Appop Denial)

06-07 16:28:25.596 26844 26844 D LocationUpdatesService: Requesting location updates
06-07 16:28:25.598 26844 26844 D a       : Did not remove updates for given LocationListener. Wasn't registered in this instance.
06-07 16:28:25.666 26844 26844 D LocationUpdatesService: Service started
06-07 16:28:25.690  3481  4239 W GCoreFlp: No location to return for getLastLocation()
06-07 16:28:25.714 23876 11087 W native  : phonology.cc:83 Phonemes l, R have non-distinctive features.
06-07 16:28:25.718 23876 11087 W native  : phonology.cc:83 Phonemes ii, yy have non-distinctive features.
06-07 16:28:25.718 23876 11087 W native  : phonology.cc:83 Phonemes I, Y have non-distinctive features.
06-07 16:28:25.724  3481  4239 W GCoreFlp: No location to return for getLastLocation()
06-07 16:28:25.746   682  4757 I GnssLocationProvider: WakeLock acquired by sendMessage(SET_REQUEST, 0, com.android.server.location.GnssLocationProvider$GpsRequest@3f18fa3)
06-07 16:28:25.750   682  3059 W ActivityManager: Appop Denial: Accessing service ComponentInfo{com.google.android.gms/com.google.android.location.internal.server.GoogleLocationService} from pid=3481, uid=10034 requires appop COARSE_LOCATION
06-07 16:28:25.750  3481  4239 W GCoreFlp: Unable to bind to GMS NLP
06-07 16:28:25.752   682  3637 W ActivityManager: Appop Denial: Accessing service ComponentInfo{com.google.android.gms/com.google.android.location.internal.server.GoogleLocationService} from pid=3481, uid=10034 requires appop COARSE_LOCATION
06-07 16:28:25.753  3481  4239 W GCoreFlp: Unable to bind to GMS NLP
06-07 16:28:25.756   682  1394 I ActivityManager: Displayed gr.talent.kurviger.pro/.MainActivity: +982ms
06-07 16:28:25.756   682  1394 I GnssLocationProvider: WakeLock released by handleMessage(SET_REQUEST, 0, com.android.server.location.GnssLocationProvider$GpsRequest@3f18fa3)
06-07 16:28:25.861   309   440 W SurfaceFlinger: Attempting to set client state on removed layer: Splash Screen gr.talent.kurviger.pro#0
06-07 16:28:25.861   309   440 W SurfaceFlinger: Attempting to destroy on removed layer: Splash Screen gr.talent.kurviger.pro#0
06-07 16:28:26.122 23876 11087 I TTS.ControllerWrapper: Done initializing de-de-x-nfh-lstm-embedded
06-07 16:28:26.647 26844 26855 I nt.kurviger.pr: Background concurrent copying GC freed 404178(15MB) AllocSpace objects, 104(2MB) LOS objects, 36% free, 41MB/65MB, paused 134us total 161.679ms
06-07 16:28:27.866   285 28333 D audio_hw_primary: out_standby: enter: stream (0xb3a5c000) usecase(4: audio-ull-playback)
06-07 16:28:27.911   285 28333 D hardware_info: hw_info_append_hw_type : device_name = speaker
06-07 16:28:28.927   682  3291 W NotificationService: Toast already killed. pkg=gr.talent.kurviger.pro callback=android.app.ITransientNotification$Stub$Proxy@8f83715
06-07 16:28:29.370 26844 26855 I nt.kurviger.pr: Background concurrent copying GC freed 709194(20MB) AllocSpace objects, 6(484KB) LOS objects, 34% free, 45MB/69MB, paused 162us total 160.385ms
06-07 16:28:29.468   309   441 W SurfaceFlinger: Attempting to destroy on removed layer: 618b4be Toast#0
06-07 16:28:32.746  3481  4239 W GCoreFlp: No location to return for getLastLocation()
  • The app has all required permissions
  • API Level is now 28 according to Kurviger Status Dialog
  • Fused Location is on

I should note that I installed the OpenGApps as “pico” edition, just as I did for my LineageOS V14. Maybe I’m missing some components from the more enhanced versions?

Also I tried “GPS only” and “high accuracy”, but it doesn’t make a difference.

I guess I’ll simply have to wait for the next app release :slight_smile:

You probably need latest Google Play services.
Though they exist in all Open GApps packages.

Of course I installed the latest GApps (open_gapps-arm-9.0-pico-20190607).
According to the bundle matrix the Google Play Services are part of the “pico” edition.

Kurviger 1.9.2 was released with location service option to select which works better on the device.

Ist Google Allgemein ein schlechterer Standortservice als Android oder ist dies Geräte abhängig? Ich habe heute zum testen Google genutzt und es kam mindestens 2x mal die Meldung “Route verpasst” obwohl ich auf der Route war.

Is Google in general a worse location service than Android or is this device dependent? I used Google today to test it and I got at least twice the message “route missed” although I was on the route.

Google mentions that should have better accuracy and battery performance.
But that really depends on the device, so each one should test it and decide.

1 Like

Danke, für die Erklärung.

Thanks for the explanation.

Google location service uses Google Play services and devices better have the most updated version for best results:

“The fused location provider is a location API in Google Play services that intelligently combines different signals to provide the location information that your app needs.”

Android location service is more flexible and app can isolate (only) GPS sensor in navigation.

3 posts were split to a new topic: External GPS devices