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 コーダーの皆さんの髪の毛を節約するのに役立つことを願っています...

他のすべてが失敗した場合は、Mono によって生成されたマニフェストを obj/debug/android/AndroidManifest.xml で検索してください。

于 2013-08-31T07:07:06.377 に答える