System.MissingMethodException:找不到方法'Android.Support.V4.Widget.DrawerLayout.AddDrawerListener'

wal*_*lah 8 c# android xamarin

首先,我在一周前开始用C#和Xamarin开发Android,我遇到了这个问题.

我已经在Stack Overflow中找到了几个文本,但遗憾的是没有用.

为了解决这个问题,我采取了一些措施.

  1. 在关注之前,当我开始使用Android_Accelerated_x86 (Android 6.0 -API 23)进行调试时,Visual Studio开始查找NavigationPageRenderer但是不存在然后我得到了上面的消息标题

  2. 我使用Android SDK Manager安装和更新了包,如下所示

  3. 然后,我遇到了在标题上写的消息

    System.MissingMethodException: Method
    Android.Support.V4.Widget.DrawerLayout.AddDrawerListener' not found
    
    Run Code Online (Sandbox Code Playgroud)

    所以,我努力寻找解决方案

    1. 我下载了JDK 1.8.0_101并更改了Java Development Kit Location的路径(在工具>选项> Xamarin> Android设置中),但它不起作用.我有类似上面标题的消息.

    2. 我去了Tools> NuGet Package Manager> Manage NuGet Packages for Solution,并且只更新了Xamarin.Forms v2.3.2.127.然后我得到了7个错误.其中之一是

      错误:android.support.v7.internal.widget不存在.

  4. 我删除了解决方案,并使用Xamarin.Forms创建了新项目,我收到了类似的警告消息

    IDE0006加载项目时遇到错误.某些项目功能(例如失败项目的完整解决方案分析和依赖它的项目)已被禁用

    并且...我得到了上面标题的消息.

  5. 我还有两个'Call Stack'

    0x23 in Xamarin.Forms.Platform.Android.AppCompat.NavigationPageRenderer.OnAttachedToWindow at NavigationPageRenderer.cs
    
    0xA in Android.Views.View.n_OnAttachedToWindow at Android.Views.View.cs:
    
    Run Code Online (Sandbox Code Playgroud)

请帮我解决这个问题...非常感谢您的关注

Jon*_*las 5

出现此问题是因为Google更改了他们将此侦听器连接SetDrawerListener()到的支持库AddDrawerListener().因此,您需要确保使用最新的稳定Xamarin.Forms.以前版本的依赖于< Android.Support23.3 的Xamarin.Forms 将抛出此错误.您可以参考此提交以获取更多详细信息:

https://github.com/xamarin/Xamarin.Forms/commit/d9ed63f0add8345cf6ab1508b353dcbdacbcd97c

理想情况下,这应该在Xamarin.Forms版本2.2.0.31及更高版本中修复.

https://www.nuget.org/packages/Xamarin.Forms/