I see in google play console that some of the users are getting this error:
java.lang.IllegalArgumentException:
at com.bumptech.glide.manager.RequestManagerRetriever.assertNotDestroyed (RequestManagerRetriever.java:348)
at com.bumptech.glide.manager.RequestManagerRetriever.get (RequestManagerRetriever.java:148)
at com.bumptech.glide.Glide.with (Glide.java:826)
at de.xxx.xxx.MainActivity.setHeader (MainActivity.kt:616)
at de.xxx.xxx.MainActivity.requestAppConfig$lambda-8 (MainActivity.kt:488)
at de.xxx.xxx.MainActivity$$InternalSyntheticLambda$1$ed844943413167d84155071c08c71caa93816230bdd81f0b165e27bb97857509$0.onResponse (MainActivity.java)
at com.android.volley.toolbox.StringRequest.deliverResponse (StringRequest.java:82)
at com.android.volley.toolbox.StringRequest.deliverResponse (StringRequest.java:29)
at com.android.volley.ExecutorDelivery$ResponseDeliveryRunnable.run (ExecutorDelivery.java:102)
at android.os.Handler.handleCallback (Handler.java:790)
at android.os.Handler.dispatchMessage (Handler.java:99)
at android.os.Looper.loop (Looper.java:164)
at android.app.ActivityThread.main (ActivityThread.java:7000)
at java.lang.reflect.Method.invoke (Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:441)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1408)
I have devices with same Android versions as those who are getting this crash but I can't reprodice it, everything works as it should on my devices
I'm guessing it happens somewhere in the setHeader function:
private fun setHeader(){
val userID = prefs.getLong("userid", 0)
if(userID != 0.toLong()){
val serverScaling = func.openServerScalingList()
val whichInt = func.getThirdInt(userID.toString())
val mediaServer = serverScaling[whichInt]
val glideProfileImageOptions = RequestOptions
.circleCropTransform()
.diskCacheStrategy(DiskCacheStrategy.NONE)
.skipMemoryCache(true)
Glide
.with(this@MainActivity)
.load("$mediaServer/media/profimg/?n=$userID.jpg")
.apply(glideProfileImageOptions)
.placeholder(R.drawable.ic_user)
.into(binding.contentMain.btnProfileImage)
}else{
Glide
.with(this@MainActivity)
.load(R.drawable.ic_user)
.into(binding.contentMain.btnProfileImage)
}
}
setHeader() is called inside onCreate and sometimes in onResume():
if(prefs.getBoolean("signInChanged", false)){
setHeader()
prefs.edit().putBoolean("signInChanged", false).apply()
}
if(prefs.getBoolean("profileImageChanged", false)){
setHeader()
prefs.edit().putBoolean("profileImageChanged", false).apply()
}
Could it be that the crash happen when both conditions, signInChanged and profileImageChanged are calling setHeader() at the same time?