我正在努力使单声道android简单的“你好世界”,但我没有在模拟器中看到“你好世界”为什么?

时间:2011-08-02 03:59:14

标签: c# android mono xamarin.android

我卸载了android并将其重新安装到c:\ androidSdktools,没有空格。 所以现在模拟器工作我可以看到模拟器。

但尝试了“hello world”文本的一些代码,当我运行应用程序并运行模拟器时,我看到了android模拟器,但我看不到wnyhere“hello world”。 我不确定我是不是做了什么好事或者可能是因为我退出模拟器时仍然出现错误并停止调试我得到错误说:部署错误。如果我说“是”继续,那么他要求我重新构建/构建我的解决方案,然后我运行/调试它,但它没有解决这个错误。

我不知道这个错误是否与我在android模拟器中没有看到任何“hello world”文本有关。

我现在尝试制作此代码:

using System;

using Android.App;
using Android.Content;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;

namespace MonoAndroidApplication1
{
    [Activity(Label = "MonoAndroidApplication1", MainLauncher = true, Icon = "@drawable/icon")]
    public class Activity1 : Activity
    {
        int count = 1;

        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);

            button.Click += delegate { button.Text = string.Format("{0} clicks!", count++); };
        }
    }
}

我有视觉工作室c#2010专业版。

我试过这是我选择制作新的Android单声道应用程序时创建的自动代码。

但我在模拟器中没有看到任何文字。我试图将此代码添加为:

using System;

using Android.App;
using Android.Content;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;

namespace MonoAndroidApplication1
{
    [Activity(Label = "MonoAndroidApplication1", MainLauncher = true, Icon = "@drawable/icon")]
    public class Activity1 : Activity
    {
        int count = 1;
        TextView tv;

        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);

            // Set our view from the "main" layout resource
            SetContentView(Resource.Layout.Main);
            tv = new TextView(this);
            tv.Text = "hello world";
            SetContentView(tv);
            // Get our button from the layout resource,
            // and attach an event to it
            Button button = FindViewById<Button>(Resource.Id.MyButton);

            button.Click += delegate { button.Text = string.Format("{0} clicks!", count++); };
        }
    }
}

在运行任何文本“hello world”时我再也没有在模拟器中看到任何内容 退出模拟器并停止调试/运行应用程序时仍然会出现此部署错误。模拟器现在运行正常,但在退出时仍会出现此错误。

为什么我在模拟器上看不到文本“hello world”?

感谢。

4 个答案:

答案 0 :(得分:3)

第二次调用SetContentView更改布局后,布局中不再有Button,因此FindViewById返回null。然后,您尝试在空引用上设置事件。

查看如何阅读错误日志,以便找到错误:

http://android.xamarin.com/Documentation/Guides/Android_Debug_Log

答案 1 :(得分:1)

也可能是您没有选择正在运行的模拟器实例,因为我解释了here。与Monodroid的installation instructionsHello World tutorial一起使用对我来说很好。

答案 2 :(得分:1)

可能你没有以正确的方式附加模拟器

而不是按F5让visual studio自动附加模拟器

尝试:

点击按钮Star Android Emulator Manager(它位于组合框的右侧,表示设备提示)

在模拟器之后,它会在组合框中显示,如果没有,你必须从VS退出然后再打开它(只要你打开你的模拟器我就会出现)

从组合框中选择它,然后按F5

完成

答案 3 :(得分:0)

您安装了哪个版本的Java?我安装在我的第二台计算机Java 7上,发现Monodroid不支持Java 7,这就是我只看到模拟器而没有“hello world”应用程序的原因。

我想上周左右,当我在其他计算机上执行此操作时,他们还没有发布Java 7。