【问题标题】:Monodroid default application in VS2010 fails to run with "activity not found" errorVS2010 中的 Monodroid 默认应用程序无法运行并出现“找不到活动”错误
【发布时间】:2011-10-28 20:46:46
【问题描述】:

我已经安装了 MonoDroid(和所有先决条件)并尝试在 VS2010 中运行默认的 Android 项目。 这是代码:

[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++); };
    }
}

运行应用程序时返回错误:

尝试启动活动“MonoAndroidApplication1.MonoAndroidApplication1/monoandroidapplication1.Activity1”,但设备找不到它。

造成这种情况的一个常见原因是手动向您的 AndroidManifest.xml 添加一个名称与您的 Activity 类不匹配的名称。

考虑改用 [Activity] 属性: http://monodroid.net/Tutorials/Working_with_AndroidManifest.xml

我已在 C:\Android_SDK 中安装了 Android SDK,并相应地在 Tools->Options->Mono for Android 中设置了位置。

Mono 似乎也已正确安装在模拟器上,这是来自 ADB 的最后一点日志:

-- Process Finished [5000] --  
-- Starting Process - 17/08/2011 12:01:03 --  
Executable: C:\Android_SDK\platform-tools\adb.exe  
Arguments: -s emulator-5554 install "C:\Users\***************\documents\visual studio 2010\Projects\MonoAndroidApplication1\MonoAndroidApplication1\bin\Debug\MonoAndroidApplication1.MonoAndroidApplication1-Signed.apk"  
Appending Java path: C:\Program Files\Java\jdk1.7.0\bin  
[STDOUT]    pkg: /data/local/tmp/MonoAndroidApplication1.MonoAndroidApplication1-Signed.apk  
[STDOUT]  
[STDOUT] Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]  
[STDOUT]  
[STDERR] 696 KB/s (139717 bytes in 0.196s)  
-- Starting Process - 17/08/2011 12:01:05 --  
Executable: C:\Android_SDK\platform-tools\adb.exe  
Arguments: start-server  
Appending Java path: C:\Program Files\Java\jdk1.7.0\bin  
[STDOUT]  
[STDERR]  
-- Process Finished [5000] --  
-- Starting Process - 17/08/2011 12:01:05 --  
Executable: C:\Android_SDK\platform-tools\adb.exe  
Arguments: -s emulator-5554 shell am start -a android.intent.action.MAIN -n MonoAndroidApplication1.MonoAndroidApplication1/monoandroidapplication1.Activity1  
Appending Java path: C:\Program Files\Java\jdk1.7.0\bin  
[STDOUT] Starting: Intent { act=android.intent.action.MAIN cmp=MonoAndroidApplication1.MonoAndroidApplication1/monoandroidapplication1.Activity1 }  
[STDOUT]  
[STDOUT] Error type 3  
[STDOUT]  
[STDOUT] Error: Activity class{MonoAndroidApplication1.MonoAndroidApplication1/monoandroidapplication1.Activity1} does not exist.  
[STDOUT]

这篇帖子Monodroid raises error 也有同样的错误,但在模拟器上重新安装 Mono 似乎对我不起作用。

【问题讨论】:

    标签: visual-studio-2010 android-emulator xamarin.android


    【解决方案1】:

    Mono for Android 与 Java 7 不兼容。卸载 Java 7,安装 Java 6,然后重试。

    【讨论】:

    • 可能会让 monodroid 在遇到 Java7 时显示错误,直到问题得到解决。
    • 谢谢@jpobst!应该更加注意安装指南(android.xamarin.com/Installation/Visual_Studio)。顺便说一句,因为如果安装位置有空格,Android SDK 的最新版本会中断,我还必须将 C:\Program Files (x86)\MSBuild\Novell 的内容复制到 C:\Android\Novell 文件夹并更改C:\Program Files (x86)\MSBuild\Novell\Novell.MonoDroid.Common.targets (ResolveSdks 任务,将 MonoAndroidFrameworkPath 设置为 Value = "C:\Android\Novell" 的属性)。
    • @CodeInChaos 是的,我今天早些时候进行了更改,因此如果找不到 Java 6,您会收到一条信息性错误消息。 :)
    • @Strillo 解决方法是卸载 Android SDK 并将其重新安装到没有空格的地方。不需要其他任何东西。 Google 已在其错误跟踪器中将该错误标记为已修复,但尚未发布新版本。
    • @jpobst 我已经在 c:\Android 中安装了 Android SDK,但 MonoDroid 在 C:\Program Files (x86)\MSBuild\Novell 中安装了它自己的平台副本。这些是在将应用程序发送到模拟器时在 Novell.MonoDroid.Common.targets 中引用的那些。在默认安装中,“安装平台组件”步骤会持续很长时间,最终会因“空间不足”错误而失败。 (PS:我是Win7 x64)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-19
    • 2019-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多