App crash since manifest support of Android 12
Describe the bug CN1 seems to use deprecated Android API which isn't supported on Android 12 anymore
To Reproduce
Steps to reproduce the behavior:
Just check the specific line of the AndroidLocationManager mentioned in the stacktrace
Expected behavior No crash
Smartphone (please complete the following information):
- Device: Emulator
- OS: Android 12
Additional context
2022-12-25 14:56:16.217 2188-2188/org.igmg.android E/AndroidRuntime: FATAL EXCEPTION: main
Process: org.igmg.android, PID: 2188
java.lang.UnsupportedOperationException: GpsStatus APIs not supported, please use GnssStatus APIs instead
at android.location.LocationManager.addGpsStatusListener(LocationManager.java:2344)
at com.codename1.location.AndroidLocationManager$2.run(AndroidLocationManager.java:150)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:201)
at android.os.Looper.loop(Looper.java:288)
at android.app.ActivityThread.main(ActivityThread.java:7839)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
This is a stack from an old version. Notice @shannah made that update in February. See: https://github.com/codenameone/CodenameOne/blob/master/Ports/Android/src/com/codename1/location/AndroidLocationManager.java#L150
hmm weird. Actually I was surprised that it wasn't fixed yet supposedly. I did update CN1 via the maven command "Update Codename One" and then rebuilt the gradle build. Do I have to do anything else? It's been a while I last touched this project..
the pom props after the CN1 update:
<properties>
<java.version>1.8</java.version>
<cn1app.name>app</cn1app.name>
<maven-compiler-plugin.version>3.8.0</maven-compiler-plugin.version>
<rhino.version>1.7.11</rhino.version>
<cn1.plugin.version>7.0.95</cn1.plugin.version>
<maven.compiler.target>1.8</maven.compiler.target>
<java-tests.version>11</java-tests.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<cn1.version>7.0.95</cn1.version>
<maven.compiler.source>1.8</maven.compiler.source>
</properties>
Do I have to do anything else?
yes indeed... I noticed that the gradle project was not regenerated due to:
[INFO] Android gradle project already exists. Checking to see if it needs updating...
[INFO] Sources have not changed. Skipping android gradle project generation
[INFO] Trying to open project in Android studio
therefore I forcefully had to make at least one modification to my code in order to force a regeneration, even though imho the recent CN1 update (prior to the "Gradle Android Project" command) should be sufficient at least to sync the CN1 libs when trying to regenerate the gradle project.