I am trying to show an AlertDialog but sometimes it crashes and it shows this error message in crashlytics
Caused by java.lang.UnsupportedOperationException: Failed to resolve attribute at index 6: TypedValue{t=0x2/d=0x101009b a=1}
at android.content.res.TypedArray.getColorStateList(TypedArray.java:540)
at android.widget.TextView.<init>(TextView.java:906)
at android.widget.TextView.<init>(TextView.java:820)
at android.widget.TextView.<init>(TextView.java:816)
at com.android.internal.widget.DialogTitle.<init>(DialogTitle.java:41)
at java.lang.reflect.Constructor.newInstance0(Constructor.java)
at java.lang.reflect.Constructor.newInstance(Constructor.java:334)
at android.view.LayoutInflater.createView(LayoutInflater.java:651)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:794)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:734)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:867)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:828)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:870)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:828)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:999)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:863)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:828)
at android.view.LayoutInflater.inflate(LayoutInflater.java:519)
at android.view.LayoutInflater.inflate(LayoutInflater.java:427)
at android.view.LayoutInflater.inflate(LayoutInflater.java:374)
at com.android.internal.policy.PhoneWindow.setContentView(PhoneWindow.java:419)
at com.android.internal.app.AlertController.installContent(AlertController.java:257)
at android.app.AlertDialog.onCreate(AlertDialog.java:425)
at android.app.Dialog.dispatchOnCreate(Dialog.java:403)
at android.app.Dialog.show(Dialog.java:302)
at android.app.AlertDialog$Builder.show(AlertDialog.java:1114)
at de.geylankalafmohe.dasgedenken.ui.settings.SettingsFragment$handleLanguages$1.onClick(SettingsFragment.kt:100)
at android.view.View.performClick(View.java:6311)
at android.view.View$PerformClick.run(View.java:24833)
at android.os.Handler.handleCallback(Handler.java:794)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:173)
at android.app.ActivityThread.main(ActivityThread.java:6653)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:821)
This is how I show the AlertDialog
:
binding.changeLanguageButton.setOnClickListener {
if (context == null || activity == null || (context as Activity).isFinishing) {
return@setOnClickListener
}
val builderSingle: AlertDialog.Builder = AlertDialog.Builder(context)
builderSingle.setTitle(getString(R.string.waehle_sprache))
val arrayAdapter = ArrayAdapter<String>(requireContext(), android.R.layout.select_dialog_singlechoice)
languagesAvailable.forEach { (languageName, _) -> arrayAdapter.add(languageName) }
val checkedLanguage = ArrayList<String>(languagesAvailable.values).indexOf(currentLanguage.language);
builderSingle.setSingleChoiceItems(arrayAdapter, checkedLanguage, DialogInterface.OnClickListener { dialog, which ->
val languageName = arrayAdapter.getItem(which)
val languageCode = languagesAvailable[languageName ?: return@OnClickListener] ?: return@OnClickListener
mainActivity.setLanguage(languageCode)
})
builderSingle.setNegativeButton(requireContext().getString(R.string.abbrechen), DialogInterface.OnClickListener { dialog, which -> dialog.dismiss() })
builderSingle.show()
}
These are the other errors I get with it: