在执行时,我在应用程序中得到异常。
public static void Initialize(Context applicationContext, IUnityContainer diContainer)
{
diContainer.RegisterType<IAndroidGlobals, AndroidGlobals>(new ContainerControlledLifetimeManager(), new InjectionConstructor(applicationContext));
}这是AndroidGlobls类
public class AndroidGlobals : IAndroidGlobals
{
public string ApplicationVersion(string appName)
{
return ApplicationContext.PackageManager.GetPackageInfo(appName, 0).VersionName;
}
public Android.Content.Context ApplicationContext
{
get { return _applicationContext; }
}
private readonly Context _applicationContext;
public AndroidGlobals(Context applicationContext)
{
_applicationContext = applicationContext;
}
}以下是例外情况。我如何解决这个问题?
{System.InvalidOperationException:未找到任何成员匹配数据。错误: Invoke.Constructor(dispatch.droid.mainactivity@77cb316)):RegisterType(生存期:PerContainer,System.ArgumentException-> System.ArgumentException:未找到成员匹配数据。在Unity.Injection.InjectionConstructor.SelectMember (System.Type类型,Unity.Injection.InjectionMember _) 0x0003c在C:\projects\abstractions\src\Dependency\Injection\Members\InjectionConstructor.cs:48 at Unity.Injection.InjectionMember`2TMemberInfo,TData.AddPoliciesTContext,TPolicySet 0x00023在C:\projects\abstractions\src\Dependency\Injection\Abstracts\InjectionMember.cs:133 at Unity.UnityContainer.Unity.IUnityContainer.RegisterType (System.Type typeFrom,System.Type typeTo,System.String name,Unity.Lifetime.ITypeLifetimeManager lifetimeManager,C:\projects\container\src\UnityContainer.IUnityContainer.cs:66中的Unity.Injection.InjectionMember[] injectionMembers) 0x00144 --内部异常堆栈跟踪的结束--在Unity.UnityContainer.Unity.IUnityContainer.RegisterType (System.Type typeFrom,System.Type typeTo,System.String name,Unity.Lifetime.ITypeLifetimeManager lifetimeManager,C:\projects\container\src\UnityContainer.IUnityContainer.cs:97 at Unity.UnityContainerExtensions.RegisterTypeTFrom,TTo 0x00000 in C:\projects\abstractions\src\Extensions\Container\UnityContainer.cs:132 at Ex.Express.Mobile.Core.Shared.Initializer.Initialize (Android.Content.Context applicationContext,D:\ExNew\SmartPad\DEV\Ex.Express.Mobile\SmartPad\Components\Core\Core.Shared\Initializer.cs:72 at Ex.Express.Mobile.Core.Droid.Initializer.Initialize (Android.Content.Context applicationContext,D:\ExNew\SmartPad\DEV\Ex.Express.Mobile\SmartPad\Components\Core\Core.Droid\Initializer.cs:22 at Ex.Express.Mobile.Apps.DispatchApp.Droid.MainActivity.OnCreate (Android.OS.Bundle bundle) 0x00034中的Unity.IUnityContainer diContainer) 0x00001 ( D:\ExNew\SmartPad\DEV\Ex.Express.Mobile\SmartPad\Apps\Messages\DispatchApp.Droid\MainActivity.cs:121 }
我在链接器中使用Sdk and User Assembly。我怎样才能解决这个问题?
发布于 2019-10-18 06:54:29
这个问题已经通过在所有用过的类顶部使用属性[Android.Runtime.Preserve(AllMembers = true)]来解决。
https://stackoverflow.com/questions/58408450
复制相似问题