I have followed everything from the following link: https://developer.xamarin.com/guides/xamarin-forms/user-interface/navigation/master-detail-page/ The code I wrote can be found here: http://github.com/foyzulkarim/XamarinFormsDrawer I successfully deployed the same project in my Windows 10 Local machine using UWP project, but whenever I want to deploy in Emulator, or in my device, it is throwing the following exception.
System.MissingMethodException: Method 'Android.Support.V4.Widget.DrawerLayout.AddDrawerListener' not found.
09-17 17:16:33.636 D/Mono (10472): DllImport attempting to load: '/system/lib/liblog.so'.
09-17 17:16:33.637 D/Mono (10472): DllImport loaded library '/system/lib/liblog.so'.
09-17 17:16:33.637 D/Mono (10472): DllImport searching in: '/system/lib/liblog.so' ('/system/lib/liblog.so').
09-17 17:16:33.637 D/Mono (10472): Searching for '__android_log_print'.
09-17 17:16:33.637 D/Mono (10472): Probing '__android_log_print'.
09-17 17:16:33.637 D/Mono (10472): Found as '__android_log_print'.
09-17 17:16:33.645 I/MonoDroid(10472): UNHANDLED EXCEPTION:
09-17 17:16:33.658 I/MonoDroid(10472): System.MissingMethodException: Method 'Android.Support.V4.Widget.DrawerLayout.AddDrawerListener' not found.
09-17 17:16:33.658 I/MonoDroid(10472): at Xamarin.Forms.Platform.Android.Platform.CreateRenderer (Xamarin.Forms.VisualElement element) [0x0001f] in C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Platform.Android\Platform.cs:282
09-17 17:16:33.658 I/MonoDroid(10472): at Xamarin.Forms.Platform.Android.RendererFactory.GetRenderer (Xamarin.Forms.VisualElement view) [0x00000] in C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Platform.Android\RendererFactory.cs:10
09-17 17:16:33.658 I/MonoDroid(10472): at Xamarin.Forms.Platform.Android.AppCompat.Platform.AddChild (Xamarin.Forms.Page page, System.Boolean layout) [0x00015] in C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Platform.Android\AppCompat\Platform.cs:248
09-17 17:16:33.658 I/MonoDroid(10472): at Xamarin.Forms.Platform.Android.AppCompat.Platform.SetPage (Xamarin.Forms.Page newRoot) [0x00089] in C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Platform.Android\AppCompat\Platform.cs:237
09-17 17:16:33.658 I/MonoDroid(10472): at Xamarin.Forms.Platform.Android.FormsAppCompatActivity.InternalSetPage (Xamarin.Forms.Page page) [0x0009b] in C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Platform.Android\AppCompat\FormsAppCompatActivity.cs:336
09-17 17:16:33.658 I/MonoDroid(10472): at Xamarin.Forms.Platform.Android.FormsAppCompatActivity.SetMainPage () [0x00000] in C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Platform.Android\AppCompat\FormsAppCompatActivity.cs:410
09-17 17:16:33.659 I/MonoDroid(10472): at Xamarin.Forms.Platform.Android.FormsAppCompatActivity.LoadApplication (Xamarin.Forms.Application application) [0x00158] in C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Platform.Android\AppCompat\FormsAppCompatActivity.cs:123
09-17 17:16:33.659 I/MonoDroid(10472): at App1.Droid.MainActivity.OnCreate (Android.OS.Bundle bundle) [0x00018] in C:\Users\foyzu\Source\Github\XamarinForms\XamarinFormsDrawer\App1\App1\App1.Droid\MainActivity.cs:23
09-17 17:16:33.659 I/MonoDroid(10472): at Android.Support.V4.App.FragmentActivity.n_OnCreate_Landroid_os_Bundle_ (System.IntPtr jnienv, System.IntPtr native__this, System.IntPtr native_savedInstanceState) [0x00011] in <71c3e52f1b484794bca1cdfb1b8b1fdb>:0
09-17 17:16:33.659 I/MonoDroid(10472): at (wrapper dynamic-method) System.Object:1a87dfa6-a154-49b0-925d-8ddad74d97cf (intptr,intptr,intptr)
09-17 17:16:33.677 W/art (10472): JNI RegisterNativeMethods: attempt to register 0 native methods for android.runtime.JavaProxyThrowable
09-17 17:16:33.681 D/Mono (10472): DllImport searching in: '__Internal' ('(null)').
09-17 17:16:33.681 D/Mono (10472): Searching for 'java_interop_jnienv_throw'.
09-17 17:16:33.681 D/Mono (10472): Probing 'java_interop_jnienv_throw'.
09-17 17:16:33.681 D/Mono (10472): Found as 'java_interop_jnienv_throw'.
An unhandled exception occured.
09-17 17:16:34.399 E/mono (10472):
09-17 17:16:34.399 E/mono (10472): Unhandled Exception:
09-17 17:16:34.399 E/mono (10472): System.MissingMethodException: Method 'Android.Support.V4.Widget.DrawerLayout.AddDrawerListener' not found.
09-17 17:16:34.399 E/mono-rt (10472): [ERROR] FATAL UNHANDLED EXCEPTION: System.MissingMethodException: Method 'Android.Support.V4.Widget.DrawerLayout.AddDrawerListener' not found.
referenceTable GDEF length=814 1
referenceTable GSUB length=11364 1
referenceTable GPOS length=47302 1
Now, let's add a new layout. Right click >> Add New >> Android Layout >> DrawerLayout.axml. Now, we need to add the required NuGet packages before we start writing UI. So, download the following NuGet packages. Xamarin.Android.Support.v7.AppCompat version="25.4.0.2" Refractored.Controls.CircleImageView ( for circle image view in left drawer)
However the minimum version can be set to API 19 so you can continue to support devices that use Android 4.4 and newer. These values are set in the Project Options: These platforms are not supported when using Xamarin.Forms 3.0 or newer:
If your app is targeting API Level 13 or higher and you choose to use the Xamarin Android Support-v4 NuGet package, then the Xamarin Android Support v13 NuGet package is a required dependency. We feel the very minor increase in app size (the two .jar files differ by 17kb) is well worth the compatibility and fewer headaches it results in.
However, it appears to be one of the plugins (Xam.Plugins.Notifier) that is still referencing Xamarin.Android.Support.v4. I have opened an issue for that project here: Sorry, something went wrong. We started to receive this error today after we upgraded to the latest Xamarin.Forms.
The solution is, I needed to update the package, only the Xamarin.Forms package. Like the below image.
After update, the packages.config file should be like below
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Xamarin.Android.Support.Animated.Vector.Drawable" version="23.3.0" targetFramework="monoandroid60" />
<package id="Xamarin.Android.Support.Design" version="23.3.0" targetFramework="monoandroid60" />
<package id="Xamarin.Android.Support.v4" version="23.3.0" targetFramework="monoandroid60" />
<package id="Xamarin.Android.Support.v7.AppCompat" version="23.3.0" targetFramework="monoandroid60" />
<package id="Xamarin.Android.Support.v7.CardView" version="23.3.0" targetFramework="monoandroid60" />
<package id="Xamarin.Android.Support.v7.MediaRouter" version="23.3.0" targetFramework="monoandroid60" />
<package id="Xamarin.Android.Support.v7.RecyclerView" version="23.3.0" targetFramework="monoandroid60" />
<package id="Xamarin.Android.Support.Vector.Drawable" version="23.3.0" targetFramework="monoandroid60" />
<package id="Xamarin.Forms" version="2.3.2.127" targetFramework="monoandroid60" />
</packages>
And ignore the rest of the packages like below.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With