bumptech / bumptech/glide

Receiver not registered: com.bumptech.glide.manager.DefaultConnectivityMonitor

Open
#4,468 4 comments 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
35k
Forks
6.2k
Avg merge
1d 11h
Merged PRs (30d)
8

Description

When start up my app, it crash sometimes! Not always happen.

**Glide Version**:4.11.0

**Integration libraries**:
OkHttp v3.12.1

**Device/Android Version**:
HuaWei BLA AL00 Android 10
SAMSUNG SM F907N Android 10
SAMSUNG SM G9750 Android 9

**Issue details / Repro steps / Use case background**:

**Glide load line / `GlideModule` (if any) / list Adapter code (if any)**:
```java
Glide.with().load()

@GlideModule
public final class OkHttpGlideModule extends AppGlideModule {
private static final String TAG = OkHttpGlideModule.class.getSimpleName();
private final static int TIME_OUT = 60;

@Override
public void applyOptions(@NonNull Context context, @NonNull GlideBuilder builder) {
Log.e(TAG, "applyOptions...");
MemorySizeCalculator calculator = new MemorySizeCalculator.Builder(context)
.setMemoryCacheScreens(3)
.build();
builder.setMemoryCache(new LruResourceCache(calculator.getMemoryCacheSize()));
}

@Override
public void registerComponents(@NonNull Context context, @NonNull Glide glide, @NonNull Registry registry) {
Log.e(TAG, "registerComponents...");
registry.replace(GlideUrl.class, InputStream.class, new OkHttpUrlLoader.Factory(getOkHttpClient()));
}

public static OkHttpClient getOkHttpClient() {
TrustManager[] trustManagers = getTrustManagers();
OkHttpClient.Builder builder = new OkHttpClient.Builder()
.connectTimeout(TIME_OUT, TimeUnit.SECONDS)
.writeTimeout(TIME_OUT, TimeUnit.SECONDS)
.readTimeout(TIME_OUT, TimeUnit.SECONDS)
.sslSocketFactory(getSSLSocketFactory(trustManagers), (X509TrustManager) trustManagers[0])
.hostnameVerifier(getHostnameVerifier())
.addNetworkInterceptor(new ProgressInterceptor());
return builder.build();
}

private static SSLSocketFactory getSSLSocketFactory(TrustManager[] trustManagers) {
try {
SSLContext sslContext = SSLContext.getInstance("SSL");
sslContext.init(null, trustManagers, new SecureRandom());
return sslContext.getSocketFactory();
} catch (Exception e) {
throw new RuntimeException(e);
}
}

private static TrustManager[] getTrustManagers() {
return new TrustManager[]{new X509TrustManager() {
@Override
public void checkClientTrusted(X509Certificate[] chain, String authType) {
}

@Override
public void checkServerTrusted(X509Certificate[] chain, String authType) {
}

@Override
public X509Certificate[] getAcceptedIssuers() {
return new X509Certificate[]{};
}
}};
}

private static HostnameVerifier getHostnameVerifier() {
return new HostnameVerifier() {
@Override
public boolean verify(String hostname, SSLSession session) {
return true;
}
};
}
}

```

**Layout XML**:

No Layout

**Stack trace / LogCat**:
```gradle
java.lang.RuntimeException:Unable to stop activity {com.yjtc.everhomes/com.everhomes.android.vendor.main.MainActivity}: java.lang.IllegalArgumentException: Receiver not registered: com.bumptech.glide.manager.DefaultConnectivityMonitor$1@baf5a85
--
2 android.app.ActivityThread.callActivityOnStop(ActivityThread.java:5248)
3 ......
4 Caused by:
5 java.lang.IllegalArgumentException:Receiver not registered: com.bumptech.glide.manager.DefaultConnectivityMonitor$1@baf5a85
6 android.app.LoadedApk.forgetReceiverDispatcher(LoadedApk.java:1507)
7 android.app.ContextImpl.unregisterReceiver(ContextImpl.java:1647)
8 android.content.ContextWrapper.unregisterReceiver(ContextWrapper.java:664)
9 com.bumptech.glide.manager.DefaultConnectivityMonitor.unregister(DefaultConnectivityMonitor.java:76)
10 com.bumptech.glide.manager.DefaultConnectivityMonitor.onStop(DefaultConnectivityMonitor.java:111)
11 com.bumptech.glide.manager.ActivityFragmentLifecycle.onStop(ActivityFragmentLifecycle.java:58)
12 com.bumptech.glide.manager.SupportRequestManagerFragment.onStop(SupportRequestManagerFragment.java:209)
13 androidx.fragment.app.Fragment.performStop(Fragment.java:2895)
14 androidx.fragment.app.FragmentStateManager.stop(FragmentStateManager.java:391)
15 androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1223)
16 androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1368)
17 androidx.fragment.app.FragmentManager.moveFragmentToExpectedState(FragmentManager.java:1446)
18 androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1509)
19 androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:2637)
20 androidx.fragment.app.FragmentManager.dispatchStop(FragmentManager.java:2610)
21 androidx.fragment.app.FragmentController.dispatchStop(FragmentController.java:291)
22 androidx.fragment.app.FragmentActivity.onStop(FragmentActivity.java:563)
23 androidx.appcompat.app.AppCompatActivity.onStop(AppCompatActivity.java:207)
24 android.app.Instrumentation.callActivityOnStop(Instrumentation.java:1487)
25 android.app.Activity.performStop(Activity.java:8319)
26 android.app.ActivityThread.callActivityOnStop(ActivityThread.java:5240)
27 android.app.ActivityThread.performStopActivityInner(ActivityThread.java:5218)
28 android.app.ActivityThread.handleStopActivity(ActivityThread.java:5293)
29 android.app.servertransaction.StopActivityItem.execute(StopActivityItem.java:41)
30 android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:190)
31 android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:105)
32 android.app.ActivityThread$H.handleMessage(ActivityThread.java:2386)
33 android.os.Handler.dispatchMessage(Handler.java:107)
34 android.os.Looper.loop(Looper.java:213)
35 android.app.ActivityThread.main(ActivityThread.java:8178)
36 java.lang.reflect.Method.invoke(Native Method)
37 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
38 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1101)

```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.