25

次のエラーが表示されます。

06-06 10:45:19.685: E/AndroidRuntime(554): android.content.ActivityNotFoundException: Unable to find explicit activity class {com.Android.myApp/com.Android.myApp.Facebook.Example}; have you declared this activity in your AndroidManifest.xml?

しかし、私はマニフェストファイルでそれを宣言しました。そのような例外の他の理由は何でしょうか?

私のmanifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.Android.myApp"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="4" />

    <uses-feature android:name="android.hardware.camera" />

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@android:style/Theme.Light" >

        <activity
            android:name=".SignUpActivity"
            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=".SignInActivity"
            android:label="@string/app_name" />
        <activity
            android:name=".HomeActivity"
            android:label="@string/app_name" />
        <activity
            android:name=".selectCityActivity"
            android:label="@string/app_name" />
        <activity
            android:name=".FeedListViewActivity"
            android:label="@string/app_name" />
        <activity
            android:name=".SearchActivity"
            android:label="@string/app_name" />
        <activity
            android:name=".IWantActivity"
            android:label="@string/app_name" />
        <activity
            android:name=".DateActivity"
            android:label="@string/app_name" />
        <activity
            android:name=".ShareActivity"
            android:label="@string/app_name" />
        <activity
            android:name=".ShareProductActivity"
            android:label="@string/app_name" />
        <activity
            android:name=".SharePriceActivity"
            android:label="@string/app_name" />
        <activity
            android:name=".ShareStoreActivity"
            android:label="@string/app_name" />
        <activity
            android:name=".ProfileActivity"
            android:label="@string/app_name" />
        <activity
            android:name=".ShowMapActivity"
            android:label="@string/app_name" />
        <activity
            android:name=".ParticularEntryActivity"
            android:label="@string/app_name" />
        <activity
            android:name=".MyLocationActivity"
            android:label="@string/app_name" />
        <activity
            android:name=".MapMarkerActivity"
            android:label="@string/app_name" />
        <activity
            android:name=".BarcodeActivity"
            android:label="@string/app_name" />
        <activity
            android:name=".BarcodeResult"
            android:label="@string/app_name" />
        <activity
            android:name=".FeedbackActivity"
            android:label="@string/app_name" />
        <activity
            android:name=".SplashActivity"
            android:label="@string/app_name" />
        <activity
            android:name=".Example"
            android:label="@string/app_name" />

        <uses-library android:name="com.google.android.maps" />
    </application>

</manifest>
4

9 に答える 9

39

マニフェストでパッケージ名com.Android.myAppをアクティビティ名として宣言したため、 .ExampleAndroidはからパッケージ名を検索しcom.Android.myApp.Exampleます。しかし、あなたの活動は「com.Android.myApp/com.Android.myApp.Facebook.Example」にあります。したがって、マニフェストで以下に示すように活動名.Facebook.Exampleまたはフルパスを指定してください

<activity
                android:name="com.Android.myApp.Facebook.Example">

</activity>
于 2012-06-06T05:23:04.057 に答える
6

あなたも使うことができます

<activity
        android:name=".Facebook.Example"
        android:label="@string/app_name" />
于 2012-06-06T07:01:42.657 に答える
5

この問題のバリエーションがあります。「設定」と呼ばれるアクティビティを起動しましたが、同じエラーが発生し、提案されたすべての変更をマニフェストに加えても問題は解決しませんでした。

問題は、呼び出しアクティビティで、android.provider.Settings も使用/インポートしていたため、アクティビティを起動しようとしたときにわかることから、2 つの間で混乱していました。したがって、マニフェストではなくコードでこれを変更して、フルパスを含めました。

Intent launchScr = new Intent(this, com.foo.bar.Settings.class);

そしてそれはうまくいきました。もちろん、この特定の問題を解決するためのもう 1 つのより良い方法は、アクティビティに適切な名前を使用することです。

問題のこの変種を持つ HTH 誰でも。

于 2014-04-22T11:49:54.407 に答える
2

あなたの例外から、あなたのクラスはどれですか-FacebookまたはExample、マニフェストのパッケージで次のように宣言しましたが、宣言したアクティビティcom.Android.myAppについては、そして、facebookcom.android.myApp.Facebook.Example

例があなたの活動手段である場合、あなたの活動をcom.Android.myApp.Facebook.Example別のパッケージから、またはあなたの活動名として宣言する必要がありますので、Facebook.Example以下のように活動を宣言することができます-

<activity
        android:name="com.Android.myApp.Facebook.Example"
        android:label="@string/app_name" />
于 2012-06-06T05:35:09.303 に答える
1

Activity がこの属性で装飾されていることを確認してください。

[Activity(Label = "Your App Name", MainLauncher=true)]

注: MainLauncher は必要な場合にのみ設定してください。

于 2016-05-03T15:10:38.250 に答える
0

これは、Activity オブジェクト (起動する必要がある) がある場合に機能します。

 intent.setClassName(CallingActivity.this, activityToLaunch.getComponentName().getClassName());
于 2015-05-13T03:51:40.250 に答える
0

クラスを文字列から動的に変更する場合は、このコードを使用する必要があります。 Intent intent = new Intent().setClassName(this.getPackageName(), "com.some.other.name"); または、「com.some.other.name」の代わりに配列またはその他の結果を配置できます。乾杯!

于 2019-09-15T21:10:29.627 に答える