浪潮GS7提示类型初始值设定项引发异常,该怎么解决?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浪潮GS7提示类型初始值设定项引发异常,该怎么解决?相关的知识,希望对你有一定的参考价值。

异常信息(异常类型:System.TypeInitializationException)
异常提示:
异常信息:“Genersoft.Platform.Controls.WinForms.GUIStyleController”的类型初始值设定项引发异常。
导致错误的应用程序或对象的名称:Genersoft.Platform.Controls.WinForms
引发当前异常的方法:Void SetDefaultLookAndFeel(System.String)
异常相关帮助:
堆栈信息:
在 Genersoft.Platform.Controls.WinForms.GUIStyleController.SetDefaultLookAndFeel(String skinName)
在 Genersoft.Platform.FrameworkGui.Portal.FrameworkMain.Main(String[] args)
内部异常:
异常提示:
异常信息:未能加载文件或程序集Genersoft.Platform.Controls.GSSkins.v7.2.dll或它的某一个依赖项
导致错误的应用程序或对象的名称:Genersoft.Platform.Controls.WinForms
引发当前异常的方法:Void RegisterOldSkinAssembly()
异常相关帮助:
堆栈信息:
在 Genersoft.Platform.Controls.WinForms.GUIStyleController.RegisterOldSkinAssembly()
在 Genersoft.Platform.Controls.WinForms.GUIStyleController..cctor()
内部异常:

其实有时候把emgu的bin下面的x86文件夹copy到项目的debug下面也并不是最好的解决方案,出现这个异常最主要原因是你编译平台的问题,把编译平台改为x86就可以了!

参考技术A 打开配置管理器,将SQL server brower 服务启动(安装时默认启动方式是手动)。
并在计算机管理中将启动方式改为自动。
参考技术B 你的WebConfig 或者 App.Config 中没有名称为 TangCompanyConn 的项 数据库连接字符串 参考技术C

打开配置管理器,将SQL server brower 服务启动(安装时默认启动方式是手动)。

并在计算机管理中将启动方式改为自动。

'Android.Runtime.UncaughtExceptionHandler'的类型初始值设定项引发了异常

我的xamarin安卓应用程序运行正常,每次启动都会因此异常而崩溃。

该应用程序是从appcenter的构建服务构建的,一如既往。如果我在Debug或Release模式下在本地构建它,它会正常启动。使用Android 7设备。

有没有人遇到这个例外,知道该怎么办? Ty!

18828 W monodroid: Calling into managed runtime init E mono : E mono : Unhandled Exception: E mono : System.TypeInitializationException: The type initializer for 'Android.Runtime.UncaughtExceptionHandler' threw an exception. ---> System.ArgumentNullException: Value cannot be null. E mono : Parameter name: method E mono : at System.Delegate.CreateDelegate (System.Type type, System.Object firstArgument, System.Reflection.MethodInfo method, System.Boolean throwOnBindFailure, System.Boolean allowClosed) <0x56d026b4 + 0x00d74> in :0 E mono : at System.Delegate.CreateDelegate (System.Type type, System.Reflection.MethodInfo method) <0x56d03594 + 0x0001f> in :0 : at Android.Runtime.UncaughtExceptionHandler..cctor () <0x57d908a4 + 0x0003f> in :0 : --- End of inner exception stack trace --- : at (wrapper managed-to-native) System.Object:__icall_wrapper_mono_generic_class_init (intptr) : at Android.Runtime.JNIEnv.Initialize (Android.Runtime.JnienvInitializeArgs* args)

- 编辑

启用所有AOT / LVVM /并发垃圾收集器/ proguard / multidex选项

- 编辑2

错误的源代码:https://github.com/xamarin/xamarin-android/blob/master/src/Mono.Android/Android.Runtime/UncaughtExceptionHandler.cs

static UncaughtExceptionHandler ()
    {
        var mono_UnhandledException = typeof (System.Diagnostics.Debugger)
            .GetMethod ("Mono_UnhandledException", BindingFlags.NonPublic | BindingFlags.Static);
        mono_unhandled_exception = (Action<Exception>) Delegate.CreateDelegate (typeof(Action<Exception>), mono_UnhandledException);

        var ad_due = typeof (AppDomain)
            .GetMethod ("DoUnhandledException",
                bindingAttr:  BindingFlags.NonPublic | BindingFlags.Instance,
                binder:       null,
                types:        new []{typeof (UnhandledExceptionEventArgs)},
                modifiers:    null);
        if (ad_due != null) {
            AppDomain_DoUnhandledException  = (Action<AppDomain, UnhandledExceptionEventArgs>) Delegate.CreateDelegate (
                    typeof (Action<AppDomain, UnhandledExceptionEventArgs>), ad_due);
        }
    }

所以似乎mono_UnhandledException为null或AppDomain_DoUnhandledException为null。

将尝试在appcenter中升级或降级单声道版本。应该是错的。

- 编辑3

AppDomain.cs最近改为单声道:

https://github.com/mono/mono/commits/c1cbe060f617707258fd5111fd5ffd7ccd581899/mcs/class/corlib/System/AppDomain.cs

但是DoUnhandledException没有改变。

- 编辑4

在本地构建/发布时工作正常。所以问题是appcenter特有的。

答案

AppCenter最近发布了与Xamarin.Android 8.2(支持TargetFrameworkVersion:8.1)捆绑在一起的Mono 5.8,为了使用它,请更改您的分支配置 - > Save&Build。

另外filed the issue由Xamarin.Android团队进行调查。

另一答案

在我的情况下,问题是由使用App Center不支持的Android SDK 8.1引起的。我不得不降级到SDK 8.0,现在构建工作正常。

App Center团队承诺会增加对SDK 8.1的支持,但他们还没有ETA。

另一答案

我们遇到了与jenkins和msbuild相同的问题。作为目标回滚到8.0并禁用“使用最新”工作。在本地,使用'使用最新',构建工具26.0.3和macos app上的msbuild就像一个魅力。不确定jenkins上安装的构建工具。

另一答案

我在App Center中遇到了同样的问题。我的Android应用程序设置为目标Android 8.1(最新)并在App Center中构建正常但在运行“启动测试”时它失败。

该应用程序在调试和发布模式下本地运行良好。

我尝试禁用启动测试,以便将应用分发给我的协作者。当我的任何协作者下载应用程序并使用它时,该应用程序不起作用。

我使用VSTS构建它并通过App Center分发给我的协作者,他们说应用程序正在运行,因此我可以得出结论,这是App Center构建问题。

我没有尝试使用Android 8.0构建我的应用程序,因为一些nuget软件包仅适用于Android 8.1,我没有时间降级它们。

以上是关于浪潮GS7提示类型初始值设定项引发异常,该怎么解决?的主要内容,如果未能解决你的问题,请参考以下文章

类型初始值设定项引发异常

“Emgu.CV.CvInvoke”的类型初始值设定项引发异常。

Emgu.CV.CvInvoke”的类型初始值设定项引发异常。

Emgu.CV.CvInvoke”的类型初始值设定项引发异常

类型初始值设定项引发异常的解决办法

Emgu.CV.CvInvoke的类型初始值设定项引发异常如何解决 开发环境是VS2010