在Iphone发布模拟器中启动时应用程序崩溃

时间:2013-01-24 19:50:05

标签: iphone xamarin.ios

当我在 iPhone调试模拟器模式中运行我的应用程序时,它运行正常。当我在 iPhone发布模拟器模式中运行我的应用程序时,它会崩溃。

有人知道解决这个问题吗?

错误日志:

Terminating runtime due to unhandled exception

Unhandled Exception:
0   IOS_UI                              0x0008edfe mono_handle_exception_internal_first_pass + 2190
1   IOS_UI                              0x00090842 mono_handle_exception_internal + 1602
2   IOS_UI                              0x0009138f mono_handle_exception + 47
3   IOS_UI                              0x000d3564 handle_signal_exception + 148
4   ???                                 0x0b4b12c1 0x0 + 189469377
at (wrapper runtime-invoke) object.runtime_invoke_void__this__ (object,intptr,intptr,intptr) <IL 0x00047, 0x00071>
6   IOS_UI                              0x00009d92 mono_jit_runtime_invoke + 722
7   IOS_UI                              0x0016c50e mono_runtime_invoke + 126
8   IOS_UI                              0x0020f156 monotouch_trampoline + 3686
9   UIKit                               0x02805817 -[UIViewController loadViewIfRequired] + 536
10  UIKit                               0x02805882 -[UIViewController view] + 33
at (wrapper managed-to-native) MonoTouch.ObjCRuntime.Messaging.IntPtr_objc_msgSendSuper (intptr,intptr) <IL 0x0000a, 0x00030>
at MonoTouch.UIKit.UIViewController.get_View () [0x00030] in /Developer/MonoTouch/Source/monotouch/src/UIKit/UIViewController.g.cs:976
at IOS_UI.SettingsScreen..ctor (IOS_UI.HomeScreen) <IL 0x00014, 0x00032>
at IOS_UI.HomeScreen.ViewDidLoad () <IL 0x00119, 0x00318>
at (wrapper runtime-invoke) object.runtime_invoke_void__this__ (object,intptr,intptr,intptr) <IL 0x00047, 0x00071>
16  IOS_UI                              0x00009d92 mono_jit_runtime_invoke + 722
17  IOS_UI                              0x0016c50e mono_runtime_invoke + 126
18  IOS_UI                              0x0020f156 monotouch_trampoline + 3686
19  UIKit                               0x02805817 -[UIViewController loadViewIfRequired] + 536
20  UIKit                               0x02805882 -[UIViewController view] + 33
21  UIKit                               0x02805b2a -[UIViewController contentScrollView] + 36
22  UIKit                               0x0281cef5 -[UINavigationController _computeAndApplyScrollContentInsetDeltaForViewController:] + 36
23  UIKit                               0x0281cfdb -[UINavigationController _layoutViewController:] + 43
24  UIKit                               0x0281d286 -[UINavigationController _updateScrollViewFromViewController:toViewController:] + 254
25  UIKit                               0x0281d381 -[UINavigationController _startTransition:fromViewController:toViewController:] + 72
26  UIKit                               0x0281deab -[UINavigationController _startDeferredTransitionIfNeeded:] + 386
27  UIKit                               0x0281dfc9 -[UINavigationController _startDeferredTransitionIfNeeded] + 41
28  UIKit                               0x0281e055 -[UINavigationController __viewWillLayoutSubviews] + 33
29  UIKit                               0x029233ab -[UILayoutContainerView layoutSubviews] + 233
30  UIKit                               0x0277492d -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 279
31  libobjc.A.dylib                     0x040306b0 -[NSObject performSelector:withObject:] + 70
32  QuartzCore                          0x04bb4fc0 -[CALayer layoutSublayers] + 240
33  QuartzCore                          0x04ba933c _ZN2CA5Layer16layout_if_neededEPNS_11TransactionE + 468
34  QuartzCore                          0x04bb4eaf -[CALayer layoutIfNeeded] + 166
35  UIKit                               0x028138cd -[UIViewController window:setupWithInterfaceOrientation:] + 242
36  UIKit                               0x0275c1a6 -[UIWindow _setRotatableClient:toOrientation:updateStatusBar:duration:force:isRotating:] + 5346
37  UIKit                               0x0275acbf -[UIWindow _setRotatableClient:toOrientation:updateStatusBar:duration:force:] + 82
38  UIKit                               0x0275abd9 -[UIWindow _setRotatableViewOrientation:duration:force:] + 89
39  UIKit                               0x02759e34 __57-[UIWindow _updateToInterfaceOrientation:duration:force:]_block_invoke_0 + 224
40  UIKit                               0x02759c6e -[UIWindow _updateToInterfaceOrientation:duration:force:] + 209
41  UIKit                               0x0275aa29 -[UIWindow setAutorotates:forceUpdateInterfaceOrientation:] + 853
42  UIKit                               0x0275d922 -[UIWindow setDelegate:] + 351
43  UIKit                               0x02807fec -[UIViewController _tryBecomeRootViewControllerInWindow:] + 164
44  UIKit                               0x02754bc4 -[UIWindow addRootViewControllerViewIfPossible] + 481
45  UIKit                               0x02754dbf -[UIWindow _setHidden:forced:] + 368
46  UIKit                               0x02754f55 -[UIWindow _orderFrontWithoutMakingKey] + 49
47  UIKit                               0x0275df67 -[UIWindow makeKeyAndVisible] + 65
at (wrapper managed-to-native) MonoTouch.ObjCRuntime.Messaging.void_objc_msgSend (intptr,intptr) <IL 0x0000a, 0x0002c>
at MonoTouch.UIKit.UIWindow.MakeKeyAndVisible () [0x00010] in /Developer/MonoTouch/Source/monotouch/src/UIKit/UIWindow.g.cs:126
at IOS_UI.AppDelegate.FinishedLaunching (MonoTouch.UIKit.UIApplication,MonoTouch.Foundation.NSDictionary) <IL 0x00050, 0x00134>
at (wrapper runtime-invoke) <Module>.runtime_invoke_bool__this___object_object (object,intptr,intptr,intptr) <IL 0x00059, 0x000a7>
52  IOS_UI                              0x00009d92 mono_jit_runtime_invoke + 722
53  IOS_UI                              0x0016c50e mono_runtime_invoke + 126
54  IOS_UI                              0x0020f156 monotouch_trampoline + 3686
55  UIKit                               0x027217b7 -[UIApplication _handleDelegateCallbacksWithOptions:isSuspended:restoreState:] + 266
56  UIKit                               0x02721da7 -[UIApplication _callInitializationDelegatesForURL:payload:suspended:] + 1248
57  UIKit                               0x02722fab -[UIApplication _runWithURL:payload:launchOrientation:statusBarStyle:statusBarHidden:] + 805
58  UIKit                               0x02734315 -[UIApplication handleEvent:withNewEvent:] + 1022
59  UIKit                               0x0273524b -[UIApplication sendEvent:] + 85
60  UIKit                               0x02726cf8 _UIApplicationHandleEvent + 9874
61  GraphicsServices                    0x04d0fdf9 _PurpleEventCallback + 339
62  GraphicsServices                    0x04d0fad0 PurpleEventCallback + 46
63  CoreFoundation                      0x012b6bf5 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 53
64  CoreFoundation                      0x012b6962 __CFRunLoopDoSource1 + 146
65  CoreFoundation                      0x012e7bb6 __CFRunLoopRun + 2118
66  CoreFoundation                      0x012e6f44 CFRunLoopRunSpecific + 276
67  CoreFoundation                      0x012e6e1b CFRunLoopRunInMode + 123
68  UIKit                               0x027227da -[UIApplication _run] + 774
69  UIKit                               0x0272465c UIApplicationMain + 1211
at (wrapper managed-to-native) MonoTouch.UIKit.UIApplication.UIApplicationMain (int,string[],intptr,intptr) <IL 0x00056, 0x000a4>
at MonoTouch.UIKit.UIApplication.Main (string[],string,string) [0x0004c] in /Developer/MonoTouch/Source/monotouch/src/UIKit/UIApplication.cs:38
at IOS_UI.Application.Main (string[]) <IL 0x00007, 0x00018>
at (wrapper runtime-invoke) <Module>.runtime_invoke_void_object (object,intptr,intptr,intptr) <IL 0x00049, 0x00077>
74  IOS_UI                              0x00009d92 mono_jit_runtime_invoke + 722
75  IOS_UI                              0x0016c50e mono_runtime_invoke + 126
76  IOS_UI                              0x00170704 mono_runtime_exec_main + 420
77  IOS_UI                              0x00175af5 mono_runtime_run_main + 725
78  IOS_UI                              0x00067275 mono_jit_exec + 149
79  IOS_UI                              0x0020440d main + 2013
80  IOS_UI                              0x00002dc5 start + 53
81  ???                                 0x00000004 0x0 + 4

[ERROR] FATAL UNHANDLED EXCEPTION: System.NullReferenceException: Object reference not set to an instance of an object
  at IOS_UI.SettingsScreen.ViewDidLoad () [0x00000] in <filename unknown>:0 
  at (wrapper managed-to-native) MonoTouch.ObjCRuntime.Messaging:IntPtr_objc_msgSendSuper (intptr,intptr)
  at MonoTouch.UIKit.UIViewController.get_View () [0x00030] in /Developer/MonoTouch/Source/monotouch/src/UIKit/UIViewController.g.cs:976 
  at IOS_UI.SettingsScreen..ctor (IOS_UI.HomeScreen lastScreen) [0x00000] in <filename unknown>:0 
  at IOS_UI.HomeScreen.ViewDidLoad () [0x00000] in <filename unknown>:0 
  at (wrapper managed-to-native) MonoTouch.ObjCRuntime.Messaging:void_objc_msgSend (intptr,intptr)
  at MonoTouch.UIKit.UIWindow.MakeKeyAndVisible () [0x00010] in /Developer/MonoTouch/Source/monotouch/src/UIKit/UIWindow.g.cs:126 
  at IOS_UI.AppDelegate.FinishedLaunching (MonoTouch.UIKit.UIApplication app, MonoTouch.Foundation.NSDictionary options) [0x00000] in <filename unknown>:0 
  at (wrapper managed-to-native) MonoTouch.UIKit.UIApplication:UIApplicationMain (int,string[],intptr,intptr)
  at MonoTouch.UIKit.UIApplication.Main (System.String[] args, System.String principalClassName, System.String delegateClassName) [0x0004c] in /Developer/MonoTouch/Source/monotouch/src/UIKit/UIApplication.cs:38 
  at IOS_UI.Application.Main (System.String[] args) [0x00000] in <filename unknown>:0 
Stacktrace:


Native stacktrace:

    0   IOS_UI                              0x000916bc mono_handle_native_sigsegv + 284
    1   IOS_UI                              0x000d778d sigabrt_signal_handler + 109
    2   libsystem_c.dylib                   0x9ac1c59b _sigtramp + 43
    3   ???                                 0xffffffff 0x0 + 4294967295
    4   libsystem_sim_c.dylib               0x041e057b abort + 140
    5   IOS_UI                              0x001ea4cd monoeg_g_logv + 157
    6   IOS_UI                              0x001ea4fb monoeg_assertion_message + 43
    7   IOS_UI                              0x00215ecf monotouch_unhandled_exception_handler + 159
    8   IOS_UI                              0x0008d24c mono_invoke_unhandled_exception_hook + 140
    9   IOS_UI                              0x0009123a mono_handle_exception_internal + 4154
    10  IOS_UI                              0x0009138f mono_handle_exception + 47
    11  IOS_UI                              0x000d3564 handle_signal_exception + 148
    12  ???                                 0x0b4b12c1 0x0 + 189469377
    13  ???                                 0x0b4de3c9 0x0 + 189653961
    14  IOS_UI                              0x00009d92 mono_jit_runtime_invoke + 722
    15  IOS_UI                              0x0016c50e mono_runtime_invoke + 126
    16  IOS_UI                              0x0020f156 monotouch_trampoline + 3686
    17  UIKit                               0x02805817 -[UIViewController loadViewIfRequired] + 536
    18  UIKit                               0x02805882 -[UIViewController view] + 33
    19  ???                                 0x0cfc5ba0 0x0 + 217865120
    20  ???                                 0x170de330 0x0 + 386786096
    21  ???                                 0x170df712 0x0 + 386791186
    22  ???                                 0x170de1b0 0x0 + 386785712
    23  ???                                 0x0b4de3c9 0x0 + 189653961
    24  IOS_UI                              0x00009d92 mono_jit_runtime_invoke + 722
    25  IOS_UI                              0x0016c50e mono_runtime_invoke + 126
    26  IOS_UI                              0x0020f156 monotouch_trampoline + 3686
    27  UIKit                               0x02805817 -[UIViewController loadViewIfRequired] + 536
    28  UIKit                               0x02805882 -[UIViewController view] + 33
    29  UIKit                               0x02805b2a -[UIViewController contentScrollView] + 36
    30  UIKit                               0x0281cef5 -[UINavigationController _computeAndApplyScrollContentInsetDeltaForViewController:] + 36
    31  UIKit                               0x0281cfdb -[UINavigationController _layoutViewController:] + 43
    32  UIKit                               0x0281d286 -[UINavigationController _updateScrollViewFromViewController:toViewController:] + 254
    33  UIKit                               0x0281d381 -[UINavigationController _startTransition:fromViewController:toViewController:] + 72
    34  UIKit                               0x0281deab -[UINavigationController _startDeferredTransitionIfNeeded:] + 386
    35  UIKit                               0x0281dfc9 -[UINavigationController _startDeferredTransitionIfNeeded] + 41
    36  UIKit                               0x0281e055 -[UINavigationController __viewWillLayoutSubviews] + 33
    37  UIKit                               0x029233ab -[UILayoutContainerView layoutSubviews] + 233
    38  UIKit                               0x0277492d -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 279
    39  libobjc.A.dylib                     0x040306b0 -[NSObject performSelector:withObject:] + 70
    40  QuartzCore                          0x04bb4fc0 -[CALayer layoutSublayers] + 240
    41  QuartzCore                          0x04ba933c _ZN2CA5Layer16layout_if_neededEPNS_11TransactionE + 468
    42  QuartzCore                          0x04bb4eaf -[CALayer layoutIfNeeded] + 166
    43  UIKit                               0x028138cd -[UIViewController window:setupWithInterfaceOrientation:] + 242
    44  UIKit                               0x0275c1a6 -[UIWindow _setRotatableClient:toOrientation:updateStatusBar:duration:force:isRotating:] + 5346
    45  UIKit                               0x0275acbf -[UIWindow _setRotatableClient:toOrientation:updateStatusBar:duration:force:] + 82
    46  UIKit                               0x0275abd9 -[UIWindow _setRotatableViewOrientation:duration:force:] + 89
    47  UIKit                               0x02759e34 __57-[UIWindow _updateToInterfaceOrientation:duration:force:]_block_invoke_0 + 224
    48  UIKit                               0x02759c6e -[UIWindow _updateToInterfaceOrientation:duration:force:] + 209
    49  UIKit                               0x0275aa29 -[UIWindow setAutorotates:forceUpdateInterfaceOrientation:] + 853
    50  UIKit                               0x0275d922 -[UIWindow setDelegate:] + 351
    51  UIKit                               0x02807fec -[UIViewController _tryBecomeRootViewControllerInWindow:] + 164
    52  UIKit                               0x02754bc4 -[UIWindow addRootViewControllerViewIfPossible] + 481
    53  UIKit                               0x02754dbf -[UIWindow _setHidden:forced:] + 368
    54  UIKit                               0x02754f55 -[UIWindow _orderFrontWithoutMakingKey] + 49
    55  UIKit                               0x0275df67 -[UIWindow makeKeyAndVisible] + 65
    56  ???                                 0x0cfc8424 0x0 + 217875492
    57  ???                                 0x170dd264 0x0 + 386781796
    58  ???                                 0x0cfc772c 0x0 + 217872172
    59  ???                                 0x0cfc7827 0x0 + 217872423
    60  IOS_UI                              0x00009d92 mono_jit_runtime_invoke + 722
    61  IOS_UI                              0x0016c50e mono_runtime_invoke + 126
    62  IOS_UI                              0x0020f156 monotouch_trampoline + 3686
    63  UIKit                               0x027217b7 -[UIApplication _handleDelegateCallbacksWithOptions:isSuspended:restoreState:] + 266
    64  UIKit                               0x02721da7 -[UIApplication _callInitializationDelegatesForURL:payload:suspended:] + 1248
    65  UIKit                               0x02722fab -[UIApplication _runWithURL:payload:launchOrientation:statusBarStyle:statusBarHidden:] + 805
    66  UIKit                               0x02734315 -[UIApplication handleEvent:withNewEvent:] + 1022
    67  UIKit                               0x0273524b -[UIApplication sendEvent:] + 85
    68  UIKit                               0x02726cf8 _UIApplicationHandleEvent + 9874
    69  GraphicsServices                    0x04d0fdf9 _PurpleEventCallback + 339
    70  GraphicsServices                    0x04d0fad0 PurpleEventCallback + 46
    71  CoreFoundation                      0x012b6bf5 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 53
    72  CoreFoundation                      0x012b6962 __CFRunLoopDoSource1 + 146
    73  CoreFoundation                      0x012e7bb6 __CFRunLoopRun + 2118
    74  CoreFoundation                      0x012e6f44 CFRunLoopRunSpecific + 276
    75  CoreFoundation                      0x012e6e1b CFRunLoopRunInMode + 123
    76  UIKit                               0x027227da -[UIApplication _run] + 774
    77  UIKit                               0x0272465c UIApplicationMain + 1211
    78  ???                                 0x0cfc4bf4 0x0 + 217861108
    79  ???                                 0x0cfc3358 0x0 + 217854808
    80  ???                                 0x0cfc2b58 0x0 + 217852760
    81  ???                                 0x0cfc2be7 0x0 + 217852903
    82  IOS_UI                              0x00009d92 mono_jit_runtime_invoke + 722
    83  IOS_UI                              0x0016c50e mono_runtime_invoke + 126
    84  IOS_UI                              0x00170704 mono_runtime_exec_main + 420
    85  IOS_UI                              0x00175af5 mono_runtime_run_main + 725
    86  IOS_UI                              0x00067275 mono_jit_exec + 149
    87  IOS_UI                              0x0020440d main + 2013
    88  IOS_UI                              0x00002dc5 start + 53
    89  ???                                 0x00000004 0x0 + 4

=================================================================
Got a SIGABRT while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries 
used by your application.
=================================================================

Source SettingScreen.cs

public partial class SettingsScreen : UIViewController
{
    private string username;
    private string password;
    public event EventHandler CancelEvent;
    private LoginValidator loginValidator;
    private static string loginStatus;
    private static Boolean booleanCredentialsCheck;
    private int settingAlreadyStarted;


    public SettingsScreen () : base ("SettingsScreen", null)
    {
        try {

            this.View.BackgroundColor = UIColor.FromPatternImage (UIImage.FromFile ("ImageResource/Loginscreen/Background/achtergrond.png"));
            settingAlreadyStarted = NSUserDefaults.StandardUserDefaults.IntForKey ("settingAlreadyStarted");

            loginValidator = new LoginValidator ();
            textfieldPassword.SecureTextEntry = true;

            string encryptedPassword = NSUserDefaults.StandardUserDefaults.StringForKey ("settingPassword");

            if (encryptedPassword != null) {
                string decryptedPassword = Encrypter.Decrypt (encryptedPassword);
                textfieldPassword.Text = decryptedPassword;
            }
            textfieldUsername.Text = NSUserDefaults.StandardUserDefaults.StringForKey ("settingUsername");
            labelLoginStatus.Text = loginStatus;
        } catch (Exception ex){
            Console.WriteLine ("ERROR SettingsScreen");
        }
    }

    public override void DidReceiveMemoryWarning ()
    {
        base.DidReceiveMemoryWarning ();
    }

    public override void ViewDidLoad ()
    {
        imageviewPopup.Image = UIImage.FromFile("ImageResource/Loginscreen/Popup/popup.png");

        buttonLogin.TouchUpInside += Login;
        buttonCancel.TouchUpInside += Cancel;

        //Delegate voor done button van keyboard
        CloseSettingsTextfieldDelegate closeSettingsTextfieldDelegate = new CloseSettingsTextfieldDelegate(this);
        textfieldUsername.Delegate = closeSettingsTextfieldDelegate;
        textfieldPassword.Delegate = closeSettingsTextfieldDelegate;

        base.ViewDidLoad ();
    }

    public override void ViewDidUnload ()
    {
        base.ViewDidUnload ();

        // Clear any references to subviews of the main view in order to
        // allow the Garbage Collector to collect them sooner.
        //
        // e.g. myOutlet.Dispose (); myOutlet = null;

        ReleaseDesignerOutlets ();
    }

    public override bool ShouldAutorotateToInterfaceOrientation (UIInterfaceOrientation toInterfaceOrientation)
    {
        // Return true for supported orientations
        return (toInterfaceOrientation != UIInterfaceOrientation.PortraitUpsideDown);
    }


    void Login (object sender, EventArgs e)
    {

        try {
            string plainPassword = textfieldPassword.Text;
            string domainAndUsername = textfieldUsername.Text;

        if (domainAndUsername.Length > 4) {
            string domain = domainAndUsername.Substring (0, 4);
            string username = domainAndUsername.Substring (5);

            if (username == null || plainPassword == null) {
                loginStatus = "Niet alle velden ingevuld!";
                labelLoginStatus.Text = loginStatus;
                var alertLegeVelden = new UIAlertView ("Mislukt!", "Niet alle velden zijn ingevuld", null, "OK");
                alertLegeVelden.Show ();
            } else {
                booleanCredentialsCheck = loginValidator.ValidateLogin (username, plainPassword, domain);
                Console.WriteLine (booleanCredentialsCheck);

                if (booleanCredentialsCheck == true) {
                    NSUserDefaults.StandardUserDefaults.SetString (domainAndUsername, "settingUsername");

                    string encryptedPassword = Encrypter.Encrypt(plainPassword);
                    NSUserDefaults.StandardUserDefaults.SetString (encryptedPassword, "settingPassword");
                    loginStatus = "Logingegevens correct";
                    labelLoginStatus.Text = loginStatus;
                    var alertSuccess = new UIAlertView ("Gelukt!", "Inloggegevens zijn correct", null, "OK");
                    alertSuccess.Show ();

                    if (settingAlreadyStarted.Equals (0)) { // Check eerste keer gestart?
                            NSUserDefaults.StandardUserDefaults.SetInt(1, "settingAlreadyStarted"); //Verander value van setting zodat iPhone weet dat app al eens gestart is.
                    }

                    if (CancelEvent != null) { //Sluit settings scherm
                        CancelEvent(this, EventArgs.Empty);
                    }

                } else {
                    loginStatus = "Logingegevens foutief";
                    labelLoginStatus.Text = loginStatus;
                    var alertFail = new UIAlertView ("Mislukt!", "Inloggegevens zijn foutief", null, "OK");
                    alertFail.Show ();
                }
            }
        } else {
            Console.WriteLine ("Te weinig username karakters");
            loginStatus = "Logingegevens foutief";
            labelLoginStatus.Text = loginStatus;
            var alertFailUsernameDomain = new UIAlertView ("Mislukt!", "Domein of username foutief ingevuld", null, "OK");
            alertFailUsernameDomain.Show ();
        }
        } catch {
            var alertFailUsernameDomain = new UIAlertView ("Mislukt!", "Domein of username foutief ingevuld", null, "OK");
            alertFailUsernameDomain.Show ();
        }


    }

    void Cancel (object sender, EventArgs e)
    {
        if (settingAlreadyStarted.Equals (0)) { // Bij eerste keer dat app wordt gestart. //Moet uiteindelijk uit setting gelezen worden.
            Console.WriteLine("Annuleren niet toegestaan bij eerste keer starten app");
            var alertCannotCancel = new UIAlertView ("Mislukt", "Er dient te worden ingelogd om gebruik te kunnen maken van de app", null, "OK");
            alertCannotCancel.Show ();

        } else {
            if (CancelEvent != null) {
                CancelEvent(this, EventArgs.Empty);
            }
        }
    }

}


public class CloseSettingsTextfieldDelegate : UITextFieldDelegate{
    private SettingsScreen controller;

    public CloseSettingsTextfieldDelegate(SettingsScreen settingsScreen)
    {
        controller = settingsScreen;
    }

    public override bool ShouldReturn (UITextField textField)
    {
        textField.ResignFirstResponder();
        return false;
    }
}

打开我的应用设置时,我也注意到一件奇怪的事情:设置 - &gt; App:

它显示了很多调试设置(100 +)

是什么导致这种情况?

3 个答案:

答案 0 :(得分:1)

如果NullReferenceException发生在此处,则意味着一个(或多个)字段为null。由于它不会在调试上发生,因此您无法使用调试器,但您应该可以通过在应用程序中添加一些Console.WriteLine来验证这一点。 E.g。

public override void ViewDidLoad ()
{
    if (imageviewPopup == null) Console.WriteLine ("uho, no imageviewPopup");
    imageviewPopup.Image = UIImage.FromFile("ImageResource/Loginscreen/Popup/popup.png");

    if (buttonLogin == null) Console.WriteLine ("uho, no buttonLogin");
    buttonLogin.TouchUpInside += Login;
    if (buttonCancel == null) Console.WriteLine ("uho, no buttonCancel");
    buttonCancel.TouchUpInside += Cancel;
    ...

一旦确认,您应该查看您的NIB文件,以及是否有任何项目选项与调试发布版本不同。

  

打开我的应用设置时,我也发现了一件奇怪的事情:设置 - &gt; App:它显示了很多调试设置(100+)。什么可能导致这种情况?

这是最近修复的MonoTouch中的错误(每个版本都会复制这些条目)。这仅适用于调试版本,不会影响您的应用程序。

答案 1 :(得分:1)

问题解决了!

在项目属性中,我确实将调试模式的编译器值设置为“IOS”。对于发布模式,我忘了设置值。现在我也设置了这个值,它可以工作。

在MonoTouch项目和Mono For Android项目使用的公共项目中的一个类中,我定义了一个if else语句用于编译。如果我是对的,这个if else语句使用项目的编译器值来确定要做什么。

    public class Sharepoint
    {
#if ANDROID

    private Android_UI.Test.Database.Lists service;
#else
    private Test.Database.Lists service;
#endif
    private const string LISTNAME = "DatabaseFix";
    private CredentialCache _credentialCache;

    /// <summary>
    /// Initializes a new instance of the <see cref="Test_Common.Sharepoint"/> class.
    /// Requires Ordina credentials.
    /// </summary>
    /// <param name='username'>
    /// Username.
    /// </param>
    /// <param name='password'>
    /// Password.
    /// </param>
    /// <param name='domain'>
    /// Domain.
    /// </param>
    public Sharepoint (string username, string password, string domain){
#if ANDROID
        service = new Android_UI.Test.Database.Lists();
#else
        service = new Test.Database.Lists();
#endif
        service.Url = "https://........./_vti_bin/Lists.asmx";

        _credentialCache = new CredentialCache();
        _credentialCache.Add(new Uri(service.Url), "BASIC", new NetworkCredential(username, password, domain));


        service.Credentials = CredentialCache.DefaultCredentials;
        service.Credentials = _credentialCache;
        service.Timeout = 30000; //30 seconds
    }

PS。谢谢大家的回复

答案 2 :(得分:0)

将此调用移至

        this.View.BackgroundColor = UIColor.FromPatternImage (UIImage.FromFile ("ImageResource/Loginscreen/Background/achtergrond.png"));
        settingAlreadyStarted = NSUserDefaults.StandardUserDefaults.IntForKey ("settingAlreadyStarted");

        loginValidator = new LoginValidator ();
        textfieldPassword.SecureTextEntry = true;

        string encryptedPassword = NSUserDefaults.StandardUserDefaults.StringForKey ("settingPassword");

        if (encryptedPassword != null) {
            string decryptedPassword = Encrypter.Decrypt (encryptedPassword);
            textfieldPassword.Text = decryptedPassword;
        }
        textfieldUsername.Text = NSUserDefaults.StandardUserDefaults.StringForKey ("settingUsername");
        labelLoginStatus.Text = loginStatus;

public override void ViewDidLoad (){}