I have custom WebView renderer in my app which inherits from WebViewRenderer. When I'm trying to open this WebView in my app on Android 5.1 device it crashes in base.OnElementChanged(e) invoke with exception: NotFoundException: String resource ID #0x2040003
According to this https://stackoverflow.com/questions/41025200/android-view-inflateexception-error-inflating-class-android-webkit-webview it could be exception from Google native library - androidx.appcompat
App does not crash
Crash occurs every time when I try to open custom WebView
Is there any chance for fix in XF 4.6?
@Skirtek Can you please attach a small project that demonstrates this issue? Thanks!
Here is a repro:
_10289.zip
I can reproduce the issue. Tested on emulator and old device (Api Level 19):
MonoDroid] UNHANDLED EXCEPTION:
[MonoDroid] Android.Content.Res.Resources+NotFoundException: File res/drawable/abc_vector_test.xml from drawable resource ID #0x7f07005b ---> Org.XmlPull.V1.XmlPullParserException: Binary XML file line #17: invalid drawable tag vector
[MonoDroid] --- End of inner exception stack trace ---
[MonoDroid] at Java.Interop.JniEnvironment+InstanceMethods.CallNonvirtualVoidMethod (Java.Interop.JniObjectReference instance, Java.Interop.JniObjectReference type, Java.Interop.JniMethodInfo method, Java.Interop.JniArgumentValue* args) [0x0008e] in <26521a5118b44c858c385715922b9d5d>:0
[Mo04-21 13:24:23.544 I] at Java.Interop.JniPeerMembers+JniInstanceMethods.InvokeVirtualVoidMethod (System.String encodedMember, Java.Interop.IJavaPeerable self, Java.Interop.JniArgumentValue* parameters) [0x0005d] in <26521a5118b44c858c385715922b9d5d>:0
[MonoDroid] at Android.App.Activity.OnCreate (Android.OS.Bundle savedInstanceState) [0x00031] in <d3b924763d4a465c85b26f6e8edc8a53>:0
[MonoDroid] at Xamarin.Forms.Platform.Android.FormsAppCompatActivity.OnCreate (Android.OS.Bundle savedInstanceState, Xamarin.Forms.Platform.Android.ActivationFlags flags) [0x0003b] in D:\a\1\s\Xamarin.Forms.Platform.Android\AppCompat\FormsAppCompatActivity.cs:227
[MonoDroid] at Xamarin.Forms.Platform.Android.FormsAppCompatActivity.OnCreate (Android.OS.Bundle savedInstanceState) [0x00000] in D:\a\1\s\Xamarin.Forms.Platform.Android\AppCompat\FormsAppCompatActivity.cs:209
[MonoDroid] at _10289.Droid.MainActivity.OnCreate (Android.OS.Bundle savedInstanceState) [0x00017] in /Users/jsuarez/Downloads/_10289-2/_10289/_10289.Android/MainActivity.cs:20
[MonoDroid] at Android.App.Activity.n_OnCreate_Landroid_os_Bundle_ (System.IntPtr jnienv, System.IntPtr native__this, System.IntPtr native_savedInstanceState) [0x00011] in <d3b924763d4a465c85b26f6e8edc8a53>:0
[MonoDroid] at (wrapper dynamic-method) Android.Runtime.DynamicMethodNameCounter.8(intptr,intptr,intptr)
[MonoDroid] --- End of managed Android.Content.Res.Resources+NotFoundException stack trace ---
[MonoDroid] android.content.res.Resources$NotFoundException: File res/drawable/abc_vector_test.xml from drawable resource ID #0x7f07005b
[MonoDroid] at android.content.res.Resources.loadDrawable(Resources.java:2101)
[MonoDroid] at android.content.res.Resources.getDrawable(Resources.java:700)
[MonoDroid] at androidx.core.content.ContextCompat.getDrawable(ContextCompat.java:456)
[MonoDroid] at androidx.appcompat.widget.ResourceManagerInternal.getDrawable(ResourceManagerInternal.java:144)
[MonoDroid] at androidx.appcompat.widget.ResourceManagerInternal.getDrawable(ResourceManagerInternal.java:132)
[MonoDroid] at androidx.appcompat.widget.ResourceManagerInternal.checkVectorDrawableSetup(ResourceManagerInternal.java:504)
[MonoDroid] at androidx.appcompat.widget.ResourceManagerInternal.getDrawable(ResourceManagerInternal.java:137)
[MonoDroid] at androidx.appcompat.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:411)
[MonoDroid] at androidx.appcompat.widget.TintTypedArray.getDrawableIfKnown(TintTypedArray.java:86)
[MonoDroid] at androidx.appcompat.app.AppCompatDelegateImpl.attachToWindow(AppCompatDelegateImpl.java:647)
[MonoDroid] at androidx.appcompat.app.AppCompatDelegateImpl.ensureWindow(AppCompatDelegateImpl.java:623)
[MonoDroid] at androidx.appcompat.app.AppCompatDelegateImpl.onCreate(AppCompatDelegateImpl.java:350)
[MonoDroid] at androidx.appcompat.app.AppCompatActivity.onCreate(AppCompatActivity.java:105)
[MonoDroid] at crc64dae04da323d3ce54.MainActivity.n_onCreate(Native Method)
[MonoDroid] at crc64dae04da323d3ce54.MainActivity.onCreate(MainActivity.java:38)
[MonoDroid] at android.app.Activity.performCreate(Activity.java:5231)
[MonoDroid] at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
[MonoDroid] at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
[MonoDroid] at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
[MonoDroid] at android.app.ActivityThread.access$800(ActivityThread.java:135)
[MonoDroid] at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
[MonoDroid] at android.os.Handler.dispatchMessage(Handler.java:102)
[MonoDroid] at android.os.Looper.loop(Looper.java:136)
[MonoDroid] at android.app.ActivityThread.main(ActivityThread.java:5017)
[MonoDroid] at java.lang.reflect.Method.invokeNative(Native Method)
[MonoDroid] at java.lang.reflect.Method.invoke(Method.java:515)
[MonoDroid] at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
[MonoDroid] at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
[MonoDroid] at dalvik.system.NativeStart.main(Native Method)
[MonoDroid] Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #17: invalid drawable tag vector
[MonoDroid] at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:933)
[MonoDroid] at android.graphics.drawable.Drawable.createFromXml(Drawable.java:877)
[MonoDroid] at android.content.res.Resources.loadDrawable(Resources.java:2097)
[MonoDroid] ... 28 more
Hi, is there any fix on this or any workaround?
@monolara I think it get stucked in TO DO column :(
On the last preview release (Xamarin.Forms.4.7.0.848-pre3), it doesn't crash for me, but all I got is a white screen.
Finally works on the last pre4 release.
@maarkristof I can not agree. I tested application on pre3, pre4 and 4.7. It is not fixed yet. Any hopes to fix this soon?
@monolara Finally I found working solution! In MainActivity declare: ConfigurationChanges = ConfigChanges.UiMode and it works! Credits: https://stackoverflow.com/a/58684213/6457073
Most helpful comment
@monolara Finally I found working solution! In MainActivity declare: ConfigurationChanges = ConfigChanges.UiMode and it works! Credits: https://stackoverflow.com/a/58684213/6457073