我编写的第一个应用程序崩溃了,我不知道为什么

本文关键字:我不知道 为什么 崩溃 应用程序 第一个 | 更新日期: 2023-09-27 18:08:55

我已经开始使用Xamarin在c#中编写android应用程序,但我的应用程序甚至在做任何事情之前就崩溃了。有人知道为什么吗?

该应用程序的目的是简单地以ax^2+bx+c的形式取一个二次方程,并找到它的两个解,然后显示这些解。

谢谢。

[Activity (Label = "FirstApp", MainLauncher = true, Icon = "@drawable/icon")]
public class MainActivity : Activity
{
    int a = 4;
    int b = 1 ;
    int c = 2;
    int d;
    int s1;
    int s2;
    string fail ="There are no real roots!";

    protected override void OnCreate (Bundle bundle)
    {
        base.OnCreate (bundle);
        // Set our view from the "main" layout resource
        SetContentView (Resource.Layout.Main);
        // Get our button from the layout resource,
        // and attach an event to it
        Button button = FindViewById<Button> (Resource.Id.myButton);
        TextView sol2 = FindViewById<TextView> (Resource.Id.Solution2);
        TextView sol1 = FindViewById<TextView> (Resource.Id.Solution1);
        button.Click += delegate {
            quadratic(a,b,c);
            sol1.Text = string.Format (Convert.ToString(s1));
            sol2.Text = string.Format (Convert.ToString(s2));
        };
    }
    string quadratic (int a, int b, int c)
    {
        d = Convert.ToInt32(Math.Pow (b, 2)) - (4 * a * c);
        if (d < 0) {
            return(fail);
        } else{
            s1 = (-1 * b + Convert.ToInt32(Math.Sqrt (d))) / (2 * a);
            s2 = (-1 * b - Convert.ToInt32(Math.Sqrt (d))) / (2 * a);
            return(Convert.ToString(s1));
        }
    }
}

我编写的第一个应用程序崩溃了,我不知道为什么

我认为下面几行试图将未定义的整型转换为字符串:

sol1.Text = string.Format (Convert.ToString(s1));
sol2.Text = string.Format (Convert.ToString(s2));

在我的本地测试中,直到s1s2有值,项目才会构建。

int s1, s2 = -1;

我找到解决方案了!简单地说,我显然已经开始为android API Level 22开发应用,并试图在Level 21模拟器上运行它,所以它无法应付它。

下载22级图像并制作一个新的模拟器修复了这个问题。