0

今天我遇到了很多问题,试图添加一个意图来调用我编写的一个单独的应用程序,我希望它可以从另一个应用程序中使用。关于该主题的信息很多,但似乎没有任何效果,我发现了这个问题并想分享我的经验,以防其他人遇到同样的问题。

我的清单包括该项目

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

这导致活动未找到异常。

4

2 回答 2

1

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

<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>
于 2013-08-31T09:50:02.130 回答
0

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

所以解决方案是删除com。从 SetClassName 方法,即。

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

所以希望这可以帮助你们中的任何一个 Mono 编码器节省一些头发......

如果一切都失败了,只需在 obj/debug/android/AndroidManifest.xml 下查找 Mono 生成的清单

于 2013-08-31T07:07:06.377 回答