Android app crash

Discuss KerberosSDR - 4x Coherent RTL-SDR
AE6EO
Posts: 15
Joined: Sun Sep 15, 2019 1:57 am

Android app crash

Post by AE6EO » Mon Nov 11, 2019 12:30 am

I tried using the current version of the Android app for KerberosSDR today. I was able to use it to communicate with the server (running on a La Frite SBC), do the initial configuration and synchronization, and enable the DOA processing. The compass display information seems reasonable.

However, when I tried to use the app to actually record bearings as I rode around, I could not. I had configured a new-and-unique filename into the logging-control preferences screen, and gone back to the main display.

The instant I touched the "timer" icon to start recording, the app crashed.

This happened repeatedly - I was never able to keep the app running long enough to actually record any bearings and positions to the .csv file.

The last time it happened I took a bug report. The backtrace says it's crashing in Timer.kt, line 168, and the error is "NoSuchMethodError: no virtual method getBearingAccuracyDegrees()F in class Landroid/location/Location, or its superclasses."

100% reproducible on my tablet (a Nexus 7 running LineageOS).

Perhaps this is a consequence of having dropped the minimum-SDK-level required by the app (so it can run on the large number of tablets and phones which don't have the most recent Android versions)? Timer.kt might be trying to use a routine that doesn't exist in the older SDKs, and doesn't fall back to an alternative code path in this case?

myke
Posts: 37
Joined: Wed Aug 28, 2019 7:03 pm

Re: Android app crash

Post by myke » Mon Nov 11, 2019 2:38 am

I have had a similar issue. In the Android app, try setting -> Open Log and confirm your path a .csv file is ..../Downloads/KerberosSDR (if not get into KerberosSDR folder and load any current .csv file -- if there is not one in that folder...uninstall and reinstall Android app. ...you can uncheck Pause logging when stationary temporary to confirm logging... I can duplicate csv file path issues across multiple android devices at android 8+ .... Might get better guidance... but that's been my experience....

rtlsdrblog
Site Admin
Posts: 2474
Joined: Mon Nov 19, 2012 11:54 pm

Re: Android app crash

Post by rtlsdrblog » Tue Nov 12, 2019 11:21 am

AE6EO wrote:
Mon Nov 11, 2019 12:30 am
I tried using the current version of the Android app for KerberosSDR today. I was able to use it to communicate with the server (running on a La Frite SBC), do the initial configuration and synchronization, and enable the DOA processing. The compass display information seems reasonable.

However, when I tried to use the app to actually record bearings as I rode around, I could not. I had configured a new-and-unique filename into the logging-control preferences screen, and gone back to the main display.

The instant I touched the "timer" icon to start recording, the app crashed.

This happened repeatedly - I was never able to keep the app running long enough to actually record any bearings and positions to the .csv file.

The last time it happened I took a bug report. The backtrace says it's crashing in Timer.kt, line 168, and the error is "NoSuchMethodError: no virtual method getBearingAccuracyDegrees()F in class Landroid/location/Location, or its superclasses."

100% reproducible on my tablet (a Nexus 7 running LineageOS).

Perhaps this is a consequence of having dropped the minimum-SDK-level required by the app (so it can run on the large number of tablets and phones which don't have the most recent Android versions)? Timer.kt might be trying to use a routine that doesn't exist in the older SDKs, and doesn't fall back to an alternative code path in this case?
Hmm odd, we're not even using that method. I'll check on it, and try to compile a new version soon.

rtlsdrblog
Site Admin
Posts: 2474
Joined: Mon Nov 19, 2012 11:54 pm

Re: Android app crash

Post by rtlsdrblog » Fri Nov 15, 2019 2:36 am

A new version is out with some bug fixes.

We had to update the API level from 21 to 23 to fix this bug. I'm not sure why the bug didn't show up on some devices, but showed on others, but using API 23 should fix it on all.

Can you let me know if this fixes your issue?

AE6EO
Posts: 15
Joined: Sun Sep 15, 2019 1:57 am

Re: Android app crash

Post by AE6EO » Sat Nov 16, 2019 3:05 am

It appears to have fixed the problem perfectly.

The new version updated correctly on my two LineageOS tablets (one based on Android 6, the other on 7.1). The app starts up correctly on both, connects to the server, and can receive and log bearings.

Thank you indeed!

AE6EO
Posts: 15
Joined: Sun Sep 15, 2019 1:57 am

Re: Android app crash

Post by AE6EO » Sun Nov 17, 2019 5:32 am

Further problems, I'm afraid. I took the system out for a drive this afternoon, to DF a local FM broadcast station.

The server seems to have been working fine.

I ran the Android app on both of my tablets (Nexus 7 and Nexus 10) pulling data from the same server. Two problems noted:
  1. The app running on the Nexus 7 crashed repeatedly while logging, while the same app running on the Nexus 10 logged without a problem. One possible reason for the difference: the 10 was locked in Portrait orientation, while the 7 was set to allow for auto-rotation of the screen orientation. It's possible that the Nexus 7 tried to change screen layouts while logging (the tablet was lying flat and moved around a bit as I drove). Unfortunately I wasn't able to grab a feedback bug report for this problem, as I was driving at the time.
  2. After I collected logs on both devices, I now find myself unable to do an "Open log" and "Plot log file" or "Plot grid and estimate" on either device. If I open the log file with neither "Plot" box checked, it'll accept the file, but as soon as I check either "Plot" box the app crashes. If I check "Plot" first, the app crashes when I open the file... and in this case I can't seem to re-launch the app again (it crashes immediately). The bug reports indicate that an I/O error is occurring, apparently trying to open a file for write on a read-only filesystem. I submitted a couple of feedback bug reports from these crashes.
I looked at the contents of the .csv files and they appear reasonable. I'm attaching a ZIP archive of the files from the Nexus 10.
logs.zip
A ZIP of two log files which crash the app
(33.41 KiB) Downloaded 18 times

rtlsdrblog
Site Admin
Posts: 2474
Joined: Mon Nov 19, 2012 11:54 pm

Re: Android app crash

Post by rtlsdrblog » Sun Nov 17, 2019 10:55 am

I'm able to open your log files on a Galaxy S8, and they look to have good results.

Is the csv file inside the Downloads/KerberosSDR folder?

Can you try increasing the skip every X points to 5 or so in case it's because the tablet is too slow to handle the plotting of so many data points?

AE6EO
Posts: 15
Joined: Sun Sep 15, 2019 1:57 am

Re: Android app crash

Post by AE6EO » Mon Nov 18, 2019 2:59 am

Setting the skip value to 5 as requested made no difference... it still crashed in the same way.

Yes, the files are in the KerberosSDR folder under Downloads.

Another data point: I did a fresh KerberosSDR install on my phone (a Moto G6). Ran the app and told it to try logging (the server wasn't up so it didn't collect anything) and it created the KerberosSDR subdirectory OK.

I then transferred the two .csv files to the phone via USB, putting them into the KerberosSDR directory.

I did an "Open log file" and selected kfjc-1.csv using Total Commander - no problem.

I clicked on "Plot grid" and the app instantly crashed and restarted.

Clicked on "Plot grid" again, the app crashed and I was given the opportunity to send feedback. I just did.

The feedback info indicates the same problem - failure when trying to open a file, leading to an I/O exception.

I had thought that the crashes on my end might be due to the fact that I'm running LineageOS rather than stock AOSP or phone-vendor Android. That appears not to be the case, though - my Moto G6 is running Motorola's current official software release for this phone.

Beats my why your Galaxy didn't crash! :?

rtlsdrblog
Site Admin
Posts: 2474
Joined: Mon Nov 19, 2012 11:54 pm

Re: Android app crash

Post by rtlsdrblog » Mon Nov 18, 2019 3:15 am

Okay I'll get the lead developer to look into is this week.

One question: When you ran the app for the first time, did it ask for read/write permissions, and did you click on Allow?

AE6EO
Posts: 15
Joined: Sun Sep 15, 2019 1:57 am

Re: Android app crash

Post by AE6EO » Mon Nov 18, 2019 5:43 am

Yes it did, and yes I did.

The Apps tab under Settings confirms that KerberosSDR has both Location and Storage permission.

A question - how would one normally expect to select the file to be opened? When I first open the selection window the .csv files aren't shown, either in Recent or in Downloads. I have to select either File Manager, or Total Commander, and then navigate to Downloads and then KerberosSDR to find the file.

Either way, the app seems to accept the selection OK, but then trying to plot it in any way crashes the app.

Post Reply