1

2 つの異なるアクティビティを持つfirst.packsecond.packの2 つのパッケージを持つプロジェクトがあります。そのコードで最初のアクティビティから2番目のアクティビティを開始しようとしています

Intent intent = new Intent(Intent.ACTION_MAIN); 
      intent.setComponent(new ComponentName("second.pack", "second.pack.SecondActivity")); 
      startActivity(intent);

奇妙なことに、このコードはしばらくの間機能していましたが、アプリケーションをアンインストールして再インストールした後、次のエラーが返され始めました:

Caused by: android.content.ActivityNotFoundException: Unable to find explicit activity class {second.pack/second.pack.SecondActivity}; have you declared this activity in your AndroidManifest.xml?

どこが間違っていますか?

4

3 に答える 3

1

AndroidManifest.xmlファイルで、アクティビティがすでに次のように定義されていることを確認してください。

<activity
      android:name="second.pack.SecondActivity"
      android:label="@string/yor_title"/>
于 2013-01-16T23:45:24.733 に答える
0

2 つのパッケージを含む 1 つのプロジェクトがありますが、プロジェクトにはいくつのアプリケーションがありますか? アプリケーションが 1 つだけあるとします。ComponentName の最初のパラメーターは、呼び出すアクティビティのパッケージ名に関係なく、アプリケーションのパッケージ名です。

したがって、パッケージが「first.pack」であるアプリケーションが 1 つしかなく、そこからパッケージ「second.pack」のアクティビティを呼び出したい場合、正しい呼び出しは次のとおりです。

Intent intent = new Intent(Intent.ACTION_MAIN); 
  intent.setComponent(new ComponentName("first.pack", "second.pack.SecondActivity")); 
  startActivity(intent);

動作を停止した理由の 1 つとして、アプリケーションのパッケージを変更したことが考えられます (「second.pack」から「first.pack」など)。

于 2017-01-05T05:54:21.670 に答える