Androidエラー「明示的なアクティビティクラスが見つかりません」

私はいくつかのパッケージでアンドロイドプロジェクトを持っています。この場合のパッケージの構造はcom.WAPP.SetLocationは、実行したいアクティビティを含むパッケージです。

私のマニフェストでは、com.WAPPは基本パッケージとみなされます:


私の活動は、私のマニフェストで次のように宣言されています:



メイン画面のアクティビティは、com.WAPPパッケージ内にあるので、うまく表示されます。しかし、私がsetLocationActivityを実行しようとすると、明示的なクラスエラーを見つけることができなくなります。インテントパラメータの設定方法は次のとおりです。

Intent i = new Intent();
            i.setClassName("com.WAPP.SetLocation",
                           "com.WAPP.SetLocation.setLocationActivity");
            startActivity(i);
19

6 答え

最初のパラメータは、アクティビティがあるパッケージではなくアプリケーションパッケージです。

このようなアクティビティを呼び出すことができます。

Intent i = new Intent();
i.setClassName("com.WAPP",
               "com.WAPP.SetLocation.setLocationActivity");
startActivity(i);

SYLARRRがAndroidにあなたのためにそれを自動的に把握させることが示唆されているので、それが好ましい。したがって、コール..

startActivity(new Intent(this, setLocationActivity.class));

パッケージ名をすべて小文字にし、クラス名をCamelCaseにすることは、Java標準に従ってお勧めします。

25
追加された

新しいアクティビティがMainActivityと同じパケットにない場合(ここから呼び出しますか?)、マニフェストで宣言してみてください


呼び出し側で

Intent intent = new Intent(this, setLocationActivity.class);
startActivity(intent);

お役に立てれば!

12
追加された

上記の回答に加えて、あなたの活動がマニフェストのアプリケーション内で宣言されていることを確認してください



    
    


9
追加された

このようにしてください:

Intent intent = new Intent();
intent.setComponent(
        new ComponentName("com.WAPP", "com.WAPP.SetLocation.setLocationActivity"));
startActivity(i);
2
追加された

If i'm not mistaken, the i.setClassName("com.WAPP.SetLocation","com.WAPP.SetLocation.setLocationActivity"); should be i.setClassName(getBaseContext(),"setLocationActivity"); Reference

また、次の構文を試してください:

startActivity(new Intent(MyActivity.this, setLocationActivity.class));

次の場所から開始ドットを削除してみてください:


1
追加された

あなたのマニフェストであなたはそれを .SetLoction.setLocationActivity しかし パッケージ名はcom.WAPP.SetLocationです。 その前に再度接頭辞を付ける必要があります。

Intent i = new Intent();
            i.setClassName("com.WAPP.SetLocation",
                           "com.WAPP.SetLocation.SetLocation.setLocationActivity");
            startActivity(i);
0
追加された