【问题标题】:Xamarin Android crashing with Xamarin.AuthXamarin Android 与 Xamarin.Auth 一起崩溃
【发布时间】:2017-07-04 10:45:02
【问题描述】:

我正在使用 Xamarin.Auth 登录 Facebook。我为 iOS 和 Android 创建了一个单独的渲染器。 在 auth.Completed 中,我在自定义渲染器的 PCL 类中调用了 AfterLogin(UserInfo) 方法。这做了一些额外的工作,然后调用

App.Current.MainPage = new NavigationPage(new MainPage());

看起来页面构造正确,所有方法都正确返回,直到抛出异常未处理。唯一的文本是“发生未处理的异常”。

在 iOS 中,一切正常。它调用完全相同的 PCL 代码。

我不知道它指的是什么视图。

编辑 来自 ADB 的堆栈跟踪

  I/MonoDroid(11638): UNHANDLED EXCEPTION:

 I/MonoDroid(11638): Java.Lang.IllegalArgumentException: No view found for id 0x4 (unknown) for fragment FragmentContainer{436fa3e8 #0 id=0x4}

I/MonoDroid(11638):   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in <d18287e1d683419a8ec3216fd78947b9>:0 

I/MonoDroid(11638):   at Java.Interop.JniEnvironment+InstanceMethods.CallBooleanMethod (Java.Interop.JniObjectReference instance, Java.Interop.JniMethodInfo method) [0x00068] in <5716a943049b49ca928a3a1c8d2386f4>:0 

I/MonoDroid(11638):   at Android.Runtime.JNIEnv.CallBooleanMethod (System.IntPtr jobject, System.IntPtr jmethod) [0x0000e] in <33e6e739ac344166b157e323586f11a1>:0 

I/MonoDroid(11638):   at Android.Support.V4.App.FragmentManagerInvoker.ExecutePendingTransactions () [0x00033] in <7e083afc7c9045f59e01d9c14931060d>:0 

I/MonoDroid(11638):   at Xamarin.Forms.Platform.Android.AppCompat.NavigationPageRenderer.Dispose (System.Boolean disposing) [0x00083] in C:\BuildAgent3\work\ca3766cfc22354a1\Xamarin.Forms.Platform.Android\AppCompat\NavigationPageRenderer.cs:135 

I/MonoDroid(11638):   at Java.Lang.Object.Dispose () [0x00000] in <33e6e739ac344166b157e323586f11a1>:0 

I/MonoDroid(11638):   at Xamarin.Forms.Platform.Android.AppCompat.Platform.SetPage (Xamarin.Forms.Page newRoot) [0x0003f] in C:\BuildAgent3\work\ca3766cfc22354a1\Xamarin.Forms.Platform.Android\AppCompat\Platform.cs:226 

I/MonoDroid(11638):   at Xamarin.Forms.Platform.Android.FormsAppCompatActivity.InternalSetPage (Xamarin.Forms.Page page) [0x0001a] in C:\BuildAgent3\work\ca3766cfc22354a1\Xamarin.Forms.Platform.Android\AppCompat\FormsAppCompatActivity.cs:370 

I/MonoDroid(11638):   at Xamarin.Forms.Platform.Android.FormsAppCompatActivity.AppOnPropertyChanged (System.Object sender, System.ComponentModel.PropertyChangedEventArgs args) [0x00012] in C:\BuildAgent3\work\ca3766cfc22354a1\Xamarin.Forms.Platform.Android\AppCompat\FormsAppCompatActivity.cs:321 

I/MonoDroid(11638):   at Xamarin.Forms.BindableObject.OnPropertyChanged (System.String propertyName) [0x0000a] in C:\BuildAgent3\work\ca3766cfc22354a1\Xamarin.Forms.Core\BindableObject.cs:136 

I/MonoDroid(11638):   at Xamarin.Forms.Element.OnPropertyChanged (System.String propertyName) [0x00000] in C:\BuildAgent3\work\ca3766cfc22354a1\Xamarin.Forms.Core\Element.cs:380 

I/MonoDroid(11638):   at Xamarin.Forms.Application.set_MainPage (Xamarin.Forms.Page value) [0x0008b] in C:\BuildAgent3\work\ca3766cfc22354a1\Xamarin.Forms.Core\Application.cs:90 

I/MonoDroid(11638):   at App.App.Instance_DataIsReady (System.Object sender, App.EventArguments.DataIsReadyEventArgs e) [0x0004d] in <9b95d86146df403c82b64e5a8ab6a9cf>:0 

I/MonoDroid(11638):   at (wrapper delegate-invoke) <Module>:invoke_void_object_DataIsReadyEventArgs (object,App.EventArguments.DataIsReadyEventArgs)

I/MonoDroid(11638):   at App.DataCache.OnDataIsReady (App.EventArguments.DataIsReadyStates state) [0x0001b] in <9b95d86146df403c82b64e5a8ab6a9cf>:0 

I/MonoDroid(11638):   at App.DataCache.set_PlayerWinnings (System.Collections.Generic.IEnumerable`1[T] value) [0x00012] in <9b95d86146df403c82b64e5a8ab6a9cf>:0 

I/MonoDroid(11638):   at App.DataCache+<RefreshData>d__37.MoveNext () [0x00351] in <9b95d86146df403c82b64e5a8ab6a9cf>:0 

I/MonoDroid(11638): --- End of stack trace from previous location where exception was thrown ---

【问题讨论】:

  • 您能否使用 Android 项目中使用的自定义渲染器更新您的代码?
  • 没有堆栈跟踪和 MainPage 构造函数,你的猜测会和任何人的一样好。

标签: xamarin xamarin.android


【解决方案1】:

哪个版本的 Xamarin.Auth? 如果 Xamarin.Forms 支持自 1.5.0 版起已在库本身中,为什么还要实现它?

如果需要更多帮助,我们需要您(和您的代码)提供更多信息...

【讨论】:

    【解决方案2】:

    问题原来是 MainPage 被分配了两次。它与 Auth 无关。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多