Weather
Weather copied to clipboard
Sometimes the app crashes on startup
I have installed the version 5.3.2, and sometimes the app crashes on startup. A window is showing then with the message, that app has crashed. Restarting the app solves the problem. The device is an android 7.1.2 - LineageOS.
10-15 07:30:38.622 14900 14900 E AndroidRuntime: FATAL EXCEPTION: main 10-15 07:30:38.622 14900 14900 E AndroidRuntime: Process: com.a5corp.weather, PID: 14900 10-15 07:30:38.622 14900 14900 E AndroidRuntime: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.a5corp.weather.activity.WeatherActivity.o()' on a null object reference 10-15 07:30:38.622 14900 14900 E AndroidRuntime: at com.a5corp.weather.fragment.WeatherFragment$14$2.run(Unknown Source) 10-15 07:30:38.622 14900 14900 E AndroidRuntime: at android.os.Handler.handleCallback(Handler.java:751) 10-15 07:30:38.622 14900 14900 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:95) 10-15 07:30:38.622 14900 14900 E AndroidRuntime: at android.os.Looper.loop(Looper.java:154) 10-15 07:30:38.622 14900 14900 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:6236) 10-15 07:30:38.622 14900 14900 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method) 10-15 07:30:38.622 14900 14900 E AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:891) 10-15 07:30:38.622 14900 14900 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:781) 10-15 07:30:38.626 1102 15418 W ActivityManager: Force finishing activity com.a5corp.weather/.activity.WeatherActivity 10-15 07:30:38.644 1102 15418 W ContextImpl: Calling a method in the system process without a qualified user: android.app.ContextImpl.sendBroadcast:883 com.android.server.am.AppErrors.crashApplicationInner:375 com.android.server.am.AppErrors.crashApplication:309 com.android.server.am.ActivityManagerService.handleApplicationCrashInner:13738 com.android.server.am.ActivityManagerService.handleApplicationCrash:13720
This is a known bug, even I am trying to figure out why this happens, and it only happens sometimes, not everytime
Do you have an idea, why we do not have a codeline number in stack trace? (Unknown Source) Would really help to find the bug. Also I wonder where we have a method o() in WeatherActivity.
Maybe it has to do with minifyEnabled and shrinkResources in build.gradle?
Also I wonder where we have a method o() in WeatherActivity.
Did you download the app from the Play Store?
No, I got it from F-Droid.
Yep, thought so. We can't say which method is o() as it was minified and then signed
Rebuilt and reproduced. Maybe it has to do with this issue:
10-19 17:13:49.573 5871 5871 E WindowManager: android.view.WindowLeaked: Activity com.a5corp.weather.activity.WeatherActivity has leaked window DecorView@a3acddb[] that was originally added here 10-19 17:13:49.573 5871 5871 E WindowManager: at android.view.ViewRootImpl.
(ViewRootImpl.java:418) 10-19 17:13:49.573 5871 5871 E WindowManager: at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:331) 10-19 17:13:49.573 5871 5871 E WindowManager: at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:94) 10-19 17:13:49.573 5871 5871 E WindowManager: at android.app.Dialog.show(Dialog.java:329) 10-19 17:13:49.573 5871 5871 E WindowManager: at com.afollestad.materialdialogs.MaterialDialog.show(MaterialDialog.java:464) 10-19 17:13:49.573 5871 5871 E WindowManager: at com.a5corp.weather.fragment.WeatherFragment.onCreateView(WeatherFragment.java:193) 10-19 17:13:49.573 5871 5871 E WindowManager: at android.support.v4.app.Fragment.performCreateView(Fragment.java:2346) 10-19 17:13:49.573 5871 5871 E WindowManager: at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1428) 10-19 17:13:49.573 5871 5871 E WindowManager: at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1759) 10-19 17:13:49.573 5871 5871 E WindowManager: at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1827) 10-19 17:13:49.573 5871 5871 E WindowManager: at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:797) 10-19 17:13:49.573 5871 5871 E WindowManager: at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2596)
The above stack seems to have to do with killing the app. Here the correct stack, as I think:
10-19 18:26:40.262 7016 7034 I FetchWeather: Execution Failed IO 10-19 18:26:40.263 7016 7034 W System.err: java.net.UnknownHostException: Unable to resolve host "api.openweathermap.org": No address associated with hostname 10-19 18:26:40.263 7016 7034 W System.err: at java.net.Inet6AddressImpl.lookupHostByName(Inet6AddressImpl.java:125) 10-19 18:26:40.263 7016 7034 W System.err: at java.net.Inet6AddressImpl.lookupAllHostAddr(Inet6AddressImpl.java:74) 10-19 18:26:40.263 7016 7034 W System.err: at java.net.InetAddress.getAllByName(InetAddress.java:752) 10-19 18:26:40.263 7016 7034 W System.err: at com.android.okhttp.internal.Network$1.resolveInetAddresses(Network.java:29) 10-19 18:26:40.263 7016 7034 W System.err: at com.android.okhttp.internal.http.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:187) 10-19 18:26:40.263 7016 7034 W System.err: at com.android.okhttp.internal.http.RouteSelector.nextProxy(RouteSelector.java:156) 10-19 18:26:40.263 7016 7034 W System.err: at com.android.okhttp.internal.http.RouteSelector.next(RouteSelector.java:98) 10-19 18:26:40.263 7016 7034 W System.err: at com.android.okhttp.internal.http.HttpEngine.createNextConnection(HttpEngine.java:346) 10-19 18:26:40.263 7016 7034 W System.err: at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:329) 10-19 18:26:40.263 7016 7034 W System.err: at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:247) 10-19 18:26:40.263 7016 7034 W System.err: at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:457) 10-19 18:26:40.263 7016 7034 W System.err: at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:405) 10-19 18:26:40.263 7016 7034 W System.err: at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:243) 10-19 18:26:40.264 7016 7034 W System.err: at com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.getInputStream(DelegatingHttpsURLConnection.java:210) 10-19 18:26:40.264 7016 7034 W System.err: at com.android.okhttp.internal.huc.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java) 10-19 18:26:40.264 7016 7034 W System.err: at com.a5corp.weather.internet.FetchWeather.gsonWeather(FetchWeather.java:102) 10-19 18:26:40.264 7016 7034 W System.err: at com.a5corp.weather.internet.FetchWeather.doInBackground(FetchWeather.java:45) 10-19 18:26:40.264 7016 7034 W System.err: at com.a5corp.weather.internet.FetchWeather.doInBackground(FetchWeather.java:25) 10-19 18:26:40.264 7016 7034 W System.err: at android.os.AsyncTask$2.call(AsyncTask.java:305) 10-19 18:26:40.264 7016 7034 W System.err: at java.util.concurrent.FutureTask.run(FutureTask.java:237) 10-19 18:26:40.264 7016 7034 W System.err: at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243) 10-19 18:26:40.264 7016 7034 W System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) 10-19 18:26:40.264 7016 7034 W System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) 10-19 18:26:40.264 7016 7034 W System.err: at java.lang.Thread.run(Thread.java:761) 10-19 18:26:40.265 7016 7034 W System.err: Caused by: android.system.GaiException: android_getaddrinfo failed: EAI_NODATA (No address associated with hostname) 10-19 18:26:40.265 7016 7034 W System.err: at libcore.io.Posix.android_getaddrinfo(Native Method) 10-19 18:26:40.265 7016 7034 W System.err: at libcore.io.ForwardingOs.android_getaddrinfo(ForwardingOs.java:55) 10-19 18:26:40.265 7016 7034 W System.err: at java.net.Inet6AddressImpl.lookupHostByName(Inet6AddressImpl.java:106) 10-19 18:26:40.265 7016 7034 W System.err: ... 23 more 10-19 18:26:40.273 7016 7039 I System.out: metric 10-19 18:26:40.275 7016 7039 I FetchWeather: Execution Failed IO 10-19 18:26:40.275 7016 7039 W System.err: java.net.UnknownHostException: Unable to resolve host "api.openweathermap.org": No address associated with hostname 10-19 18:26:40.276 7016 7039 W System.err: at java.net.Inet6AddressImpl.lookupHostByName(Inet6AddressImpl.java:95) 10-19 18:26:40.276 7016 7039 W System.err: at java.net.Inet6AddressImpl.lookupAllHostAddr(Inet6AddressImpl.java:74) 10-19 18:26:40.276 7016 7039 W System.err: at java.net.InetAddress.getAllByName(InetAddress.java:752) 10-19 18:26:40.276 7016 7039 W System.err: at com.android.okhttp.internal.Network$1.resolveInetAddresses(Network.java:29) 10-19 18:26:40.276 7016 7039 W System.err: at com.android.okhttp.internal.http.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:187) 10-19 18:26:40.276 7016 7039 W System.err: at com.android.okhttp.internal.http.RouteSelector.nextProxy(RouteSelector.java:156) 10-19 18:26:40.276 7016 7039 W System.err: at com.android.okhttp.internal.http.RouteSelector.next(RouteSelector.java:98) 10-19 18:26:40.276 7016 7039 W System.err: at com.android.okhttp.internal.http.HttpEngine.createNextConnection(HttpEngine.java:346) 10-19 18:26:40.276 7016 7039 W System.err: at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:329) 10-19 18:26:40.276 7016 7039 W System.err: at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:247) 10-19 18:26:40.276 7016 7039 W System.err: at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:457) 10-19 18:26:40.276 7016 7039 W System.err: at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:405) 10-19 18:26:40.276 7016 7039 W System.err: at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:243) 10-19 18:26:40.276 7016 7039 W System.err: at com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.getInputStream(DelegatingHttpsURLConnection.java:210) 10-19 18:26:40.276 7016 7039 W System.err: at com.android.okhttp.internal.huc.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java) 10-19 18:26:40.276 7016 7039 W System.err: at com.a5corp.weather.internet.FetchWeather.gsonWeather(FetchWeather.java:102) 10-19 18:26:40.276 7016 7039 W System.err: at com.a5corp.weather.internet.FetchWeather.doInBackground(FetchWeather.java:45) 10-19 18:26:40.276 7016 7039 W System.err: at com.a5corp.weather.internet.FetchWeather.doInBackground(FetchWeather.java:25) 10-19 18:26:40.277 7016 7039 W System.err: at android.os.AsyncTask$2.call(AsyncTask.java:305) 10-19 18:26:40.277 7016 7039 W System.err: at java.util.concurrent.FutureTask.run(FutureTask.java:237) 10-19 18:26:40.277 7016 7039 W System.err: at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243) 10-19 18:26:40.277 7016 7039 W System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) 10-19 18:26:40.277 7016 7039 W System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) 10-19 18:26:40.277 7016 7039 W System.err: at java.lang.Thread.run(Thread.java:761) 10-19 18:26:40.282 7016 7016 D AndroidRuntime: Shutting down VM 10-19 18:26:40.282 7016 7016 E AndroidRuntime: FATAL EXCEPTION: main 10-19 18:26:40.282 7016 7016 E AndroidRuntime: Process: com.a5corp.weather, PID: 7016 10-19 18:26:40.282 7016 7016 E AndroidRuntime: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.github.jorgecastilloprz.progressarc.ProgressArcView.stop()' on a null object reference 10-19 18:26:40.282 7016 7016 E AndroidRuntime: at com.github.jorgecastilloprz.FABProgressCircle.hide(FABProgressCircle.java:166) 10-19 18:26:40.282 7016 7016 E AndroidRuntime: at com.a5corp.weather.fragment.WeatherFragment$4$1.run(WeatherFragment.java:273) 10-19 18:26:40.282 7016 7016 E AndroidRuntime: at android.os.Handler.handleCallback(Handler.java:751) 10-19 18:26:40.282 7016 7016 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:95) 10-19 18:26:40.282 7016 7016 E AndroidRuntime: at android.os.Looper.loop(Looper.java:154) 10-19 18:26:40.282 7016 7016 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:6186) 10-19 18:26:40.282 7016 7016 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method) 10-19 18:26:40.282 7016 7016 E AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889) 10-19 18:26:40.282 7016 7016 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779) 10-19 18:26:40.284 944 956 W ActivityManager: Force finishing activity com.a5corp.weather/.activity.WeatherActivity
10-19 18:26:40.263 7016 7034 W System.err: java.net.UnknownHostException: Unable to resolve host "api.openweathermap.org": No address associated with hostname
That is a specific case to your phone. Your phone is not able to access the site. That is why you got that error. That being said I am aware of the bug, but not sure why it is happening.
Howto reproduce:
- Activate WLAN on device, but not connected to any router.
- Restart the app multible times, kill the app each time.
Reason: In FABProgressCircle the hide() function executes progressArc.stop(); But it is not ensured, whether progressArc is null or not. So this often throws a NullPointerException, and the app crashes.
How to solve:
--- a/app/src/main/java/com/a5corp/weather/fragment/WeatherFragment.java +++ b/app/src/main/java/com/a5corp/weather/fragment/WeatherFragment.java @@ -270,7 +270,9 @@ public class WeatherFragment extends Fragment { FirstStart(); } else { if (citys == null) + try{ fabProgressCircle.hide(); + } catch (Exception e) { Log.e("Exception", "FabProgressCircle was not initialized!", e); } cc = new CheckConnection(context()); if (!cc.isNetworkAvailable()) { showNoInternet();
Will try this out later, thanks :+1: