[英]DryIoC with Prism crashes on HUAWEI only
我的 Xamarin.Forms 应用程序出现以下错误。
Interpreter.TryInterpretAndUnwrapContainerException (DryIoc.IResolverContext r, FastExpressionCompiler.LightExpression.Expression expr, System.Boolean useFec, System.Object& result)
System.NullReferenceException: Object reference not set to an instance of an object
Interpreter.TryInterpretAndUnwrapContainerException (DryIoc.IResolverContext r, FastExpressionCompiler.LightExpression.Expression expr, System.Boolean useFec, System.Object& result)
Container.ResolveAndCacheKeyed (System.Int32 serviceTypeHash, System.Type serviceType, System.Object serviceKey, DryIoc.IfUnresolved ifUnresolved, System.Object scopeName, System.Type requiredServiceType, DryIoc.Request preResolveParent, System.Object[] args)
IResolver.Resolve (System.Type serviceType, System.Object serviceKey, DryIoc.IfUnresolved ifUnresolved, System.Type requiredServiceType, DryIoc.Request preResolveParent, System.Object[] args)
Resolver.Resolve (DryIoc.IResolver resolver, System.Type serviceType, System.Object[] args, DryIoc.IfUnresolved ifUnresolved, System.Type requiredServiceType, System.Object serviceKey)
DryIocContainerExtension.Resolve (System.Type type, System.ValueTuple`2[System.Type,System.Object][] parameters)
DryIocContainerExtension.Resolve (System.Type type, System.ValueTuple`2[System.Type,System.Object][] parameters)
PrismApplicationBase.<ConfigureViewModelLocator>b__19_0 (System.Object view, System.Type type)
ViewModelLocationProvider.AutoWireViewModelChanged (System.Object view, System.Action`2[T1,T2] setDataContextCallback)
ViewModelLocator.OnAutowireViewModelChanged (Xamarin.Forms.BindableObject bindable, System.Object oldValue, System.Object newValue)
BindableObject.SetValueActual (Xamarin.Forms.BindableProperty property, Xamarin.Forms.BindableObject+BindablePropertyContext context, System.Object value, System.Boolean currentlyApplying, Xamarin.Forms.Internals.SetValueFlags attributes, System.Boolean silent)
ViewModelLocator.SetAutowireViewModel (Xamarin.Forms.BindableObject bindable, System.Nullable`1[T] value)
PageUtilities.SetAutowireViewModel (Xamarin.Forms.VisualElement element)
PageNavigationService.CreatePageFromSegment (System.String segment)
PageNavigationService.ProcessNavigationForRootPage (System.String nextSegment, System.Collections.Generic.Queue`1[T] segments, Prism.Navigation.INavigationParameters parameters, System.Nullable`1[T] useModalNavigation, System.Boolean animated)
PageNavigationService.ProcessNavigation (Xamarin.Forms.Page currentPage, System.Collections.Generic.Queue`1[T] segments, Prism.Navigation.INavigationParameters parameters, System.Nullable`1[T] useModalNavigation, System.Boolean animated)
App.OnInitialized ()
AsyncMethodBuilderCore+<>c.<ThrowAsync>b__7_0 (System.Object state)
有趣的是,基于 AppCenter 崩溃,它只发生在装有 Android 9 或 10 的华为设备上。我想知道是否有人有任何线索/提示出了什么问题?
系统信息
NRE 没有提供很多信息:-( 此外,这个 Prism 版本使用旧的 DryIoc 版本,这使调查变得复杂。
从今天开始,原则上,您可以 fork Prism.DryIoc.Forms,将其更新到最新的 DryIoc v5.0.2(但使用 DryIoc 源包代替 DryIoc.dll 包)。 然后在您的项目中直接引用 Prism,并将断点放在TryInterpretAndUnwrapContainerException
中。 检查此答案下的评论https://stackoverflow.com/a/72258242/2492669 。
我也有兴趣找出这个问题的真正原因。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.