Fix NPE when clicking on missing app links
This happened to me when I clicked on an app link for a new app which was already in the repo, but I had not ran an index update yet since the app got built. Stack trace prior to the fix follows. java.lang.RuntimeException: Unable to destroy activity {org.fdroid.fdroid/org.fdroid.fdroid.AppDetails}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v4.content.LocalBroadcastManager.unregisterReceiver(android.content.BroadcastReceiver)' on a null object reference at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:3865) at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:3883) at android.app.ActivityThread.-wrap5(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1417) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5461) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v4.content.LocalBroadcastManager.unregisterReceiver(android.content.BroadcastReceiver)' on a null object reference at org.fdroid.fdroid.AppDetails.unregisterDownloaderReceivers(AppDetails.java:469) at org.fdroid.fdroid.AppDetails.onDestroy(AppDetails.java:569) at android.app.Activity.performDestroy(Activity.java:6422) at android.app.Instrumentation.callActivityOnDestroy(Instrumentation.java:1143) at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:3852) ... 9 more
This commit is contained in:
parent
e860503141
commit
70da6eaa12
@ -466,6 +466,9 @@ public class AppDetails extends AppCompatActivity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void unregisterDownloaderReceivers() {
|
private void unregisterDownloaderReceivers() {
|
||||||
|
if (localBroadcastManager == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
localBroadcastManager.unregisterReceiver(startedReceiver);
|
localBroadcastManager.unregisterReceiver(startedReceiver);
|
||||||
localBroadcastManager.unregisterReceiver(progressReceiver);
|
localBroadcastManager.unregisterReceiver(progressReceiver);
|
||||||
localBroadcastManager.unregisterReceiver(completeReceiver);
|
localBroadcastManager.unregisterReceiver(completeReceiver);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user