9

我按照一切從以下鏈接: https://developer.xamarin.com/guides/xamarin-forms/user-interface/navigation/master-detail-page/ 我寫的代碼可以在這裏找到:http://github.com/foyzulkarim/XamarinFormsDrawer 我成功地部署了在我的Windows 10本地計算機相同的項目中使用UWP項目,但每當我想在模擬器部署,或在我的設備,它拋出以下異常。Xamarin.Forms MissingMethodException:「Android.Support.V4.Widget.DrawerLayout.AddDrawerListener」未找到

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 

enter image description here

enter image description here

+1

開'的NuGet包Manager'和'uninstall'所有數據包,然後'install'再次.. – Ironman

回答

19

的解決方案是,我需要更新包中,僅Xamarin.Forms包。像下面的圖片一樣。

Follow the red circle at the bottom, only update the Xamarin.Forms

更新後,packages.config文件應該有如下

<?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> 

而忽略了包的其餘部分像下面。 Ignore these updates

+0

大一些案例,它只是需要重新啓動Visual Studio –

0

更新Xamarin.Forms nuget包不適合我。就我而言,爲了使Xamarin.Forms與Visual Studio一起工作,需要更新Android Studio。更新後,重新啓動Android Studio,並再次查找更新並應用它們,如果他們發現。您需要不斷重複此操作,因爲並不是所有更新都會一次安裝。至少,這是我的情況。

我想這個工作,因爲Android的Studio包含了Android SDK或一些其它部件的Visual Studio或Xamarin需要。

+0

這個問題是關於Visual Studio,而不是Android Studio。儘管兩者都有「工作室」這個詞:) –

+1

看來我需要編輯我的文章以避免進一步的混淆:更新Android Studio使Visual Studio中的Xamarin.Forms再次工作。我想這是因爲Android Studio包含了Android SDK或Visual Studio或Xamarin需要的其他組件。 – bojank

1

只需更新的NuGet-包最新(Xamarin.forms太)

乾淨的解決方案

關閉的VisualStudio

刪除所有.zip文件:

C:\用戶[YouUserName] \應用程序數據\本地\ Xamarin \拉鍊

重新啓動的VisualStudio,並重新編譯:)這將再次下載這些.zip文件(這可能需要FE w分鐘)。這些拉鍊包括相關的Android支持庫。所以它會下載真正的(與您引用的xamarin.forms版本相關)。

0

大多數情況下,你需要更新Xamarin.Forms包裝上所有的項目的最新版本

(爲了避免其他異常)

對於便攜式DriodIOS的Windows Phone如果存在,那麼它是強制性的清潔解決方案並關閉Visual Studio並再次打開它,芬利每一件事情都會好起來的。

,但是,你需要降級Xamarin.Forms包到2.3,而不是2.5.0.121934

相關問題