在Android版Mono上启动外部活动错误

本文关键字:外部 活动 错误 启动 Android Mono | 更新日期: 2023-09-27 18:29:47

我今天遇到了很多问题,试图添加一个调用我编写的、希望从另一个应用程序中可用的单独应用程序的意图。有很多关于这个话题的信息,但似乎都不起作用,我发现了这个问题,并想分享我的经验,以防其他人也有同样的问题。

我的清单包括项目

<activity android:name="CraftTabs">
  <intent-filter>
  <action android:name="android.intent.action.VIEW" />
  <category android:name="android.intent.category.DEFAULT" />
  </intent-filter>
</activity>

我试着用代码启动它

var intent = new Intent(Intent.ActionMain);
intent.SetClassName("com.mycompany.calculator", "com.mycompany.calculator.CraftTabs");
StartActivity(intent);

这导致活动未找到异常。

在Android版Mono上启动外部活动错误

在清单文件中给出完全限定的名称

<activity android:name="com.mycompany.calculator.CraftTabs">
  <intent-filter>
  <action android:name="android.intent.action.VIEW" />
  <category android:name="android.intent.category.DEFAULT" />
  </intent-filter>
</activity>

问题的根源最终是我的"CraftTabs"活动的命名空间。它被列在mycompany中,因此生成了清单

因此,解决方案是从SetClassName方法中删除com,即

 intent.SetClassName("com.mycompany.calculator", "mycompany.CraftTabs");

所以希望这能帮助你们中的任何一个Mono程序员节省一些头发。。。

如果所有其他操作都失败,只需在下面查找Mono生成的清单obj/debug/android/AndroidManifest.xml