8

PreferenceActivityから新しいアクティビティを開始しようとしています。ただし、「明示的なアクティビティクラスが見つかりません。AndroidManifest.xmlでこのアクティビティを宣言しましたか?」で失敗します。

ええ、ええ、私はそれを宣言しました:

<application [......] android:debuggable="true">
    <activity android:name=".AlarmSettings"
              android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <activity android:name=".FlashLightActivity"></activity>

    <receiver
        android:name="AlarmReceiver"
        android:process=":remote" >
    </receiver>
</application>

AlarmSettingsは私のPreferenceActivityです。AlarmSettingsは、次のようにFlashLightActivityを呼び出します。

Intent i = new Intent(AlarmSettings.this, FlashLightActivity.class);
startActivity(i);

そしてこれはFlashLightActivityです:

public class FlashLightActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.flashlight);
   }    
}

...どうしたらいいのかわからない。何か案は?

4

6 に答える 6

6

私もこの問題を抱えていました。logcat のエラーを注意深く読めば、何をすべきかがわかります。

AndroidManifest.xml でアクティビティを宣言する必要があります

    <activity
        android:name=".TheNameOfMyActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
于 2012-05-30T12:02:16.533 に答える
2

私の場合、このエラーは、アクティビティ クラス ファイルを別のパッケージに移動したために発生し、何らかの理由で Eclipse がファイルを正しくリファクタリングしなかったためです。アクティビティには常に完全修飾名を使用し、それが正確であることを再確認してください。

于 2013-12-18T15:51:57.440 に答える
0

「未回答」フィルターからこれを削除するために、投稿者のソリューションを回答セクションにコピーします。

私のコードでは問題ではありませんでしたが、EclipseとAndroidSDKでは問題でした。調査の結果、Eclipseで[ヘルプ]-> [更新の確認]を実行しましたが、すべてが機能しています。

于 2012-03-04T03:57:24.907 に答える
0

私は同じ問題を抱えていました。私がしたことonCreateは、サービスまたはレイアウトの関数内にインテント宣言を書いたことです。実際、それは「Explicityにアクセスできませんでした」と言ったものです

于 2016-07-04T14:30:20.297 に答える