ignore crashes with WifiApControl in SwapService.onDestroy()

Instead of trying to figure out the state and what to do to properly shut
things down, this just executes the methods and catches any exception.

STACK_TRACE=java.lang.RuntimeException: Unable to stop service org.fdroid.fdroid.nearby.SwapService@2ff80b9: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[])' on a null object reference
	at android.app.ActivityThread.handleStopService(ActivityThread.java:4136)
	at android.app.ActivityThread.access$1900(ActivityThread.java:219)
	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1896)
	at android.os.Handler.dispatchMessage(Handler.java:107)
	at android.os.Looper.loop(Looper.java:214)
	at android.app.ActivityThread.main(ActivityThread.java:7356)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:491)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:940)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[])' on a null object reference
	at cc.mvdan.accesspoint.WifiApControl.invokeQuietly(WifiApControl.java:178)
	at cc.mvdan.accesspoint.WifiApControl.setWifiApEnabled(WifiApControl.java:250)
	at cc.mvdan.accesspoint.WifiApControl.setEnabled(WifiApControl.java:259)
	at cc.mvdan.accesspoint.WifiApControl.disable(WifiApControl.java:269)
	at org.fdroid.fdroid.nearby.SwapService.onDestroy(SwapService.java:454)
	at android.app.ActivityThread.handleStopService(ActivityThread.java:4116)
	... 8 more
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[])' on a null object reference
	at cc.mvdan.accesspoint.WifiApControl.invokeQuietly(WifiApControl.java:178)
	at cc.mvdan.accesspoint.WifiApControl.setWifiApEnabled(WifiApControl.java:250)
	at cc.mvdan.accesspoint.WifiApControl.setEnabled(WifiApControl.java:259)
	at cc.mvdan.accesspoint.WifiApControl.disable(WifiApControl.java:269)
	at org.fdroid.fdroid.nearby.SwapService.onDestroy(SwapService.java:454)
	at android.app.ActivityThread.handleStopService(ActivityThread.java:4116)
	at android.app.ActivityThread.access$1900(ActivityThread.java:219)
	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1896)
	at android.os.Handler.dispatchMessage(Handler.java:107)
	at android.os.Looper.loop(Looper.java:214)
	at android.app.ActivityThread.main(ActivityThread.java:7356)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:491)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:940)
This commit is contained in:
Hans-Christoph Steiner
2021-09-10 17:26:59 +02:00
parent 93eed5d375
commit e5334fd797

View File

@@ -449,10 +449,14 @@ public class SwapService extends Service {
WifiApControl ap = WifiApControl.getInstance(this);
if (ap != null) {
if (wasHotspotEnabledBeforeSwap()) {
ap.enable();
} else {
ap.disable();
try {
if (wasHotspotEnabledBeforeSwap()) {
ap.enable();
} else {
ap.disable();
}
} catch (Exception e) {
e.printStackTrace();
}
}