Android.content.ActivityNotFoundException: Не удается найти явный класс активности - программирование
Подтвердить что ты не робот

Android.content.ActivityNotFoundException: Не удается найти явный класс активности

Я получаю эту ошибку:

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>
4b9b3361

Ответ 1

Вы объявили имя пакета в манифесте как com.Android.myApp и имя активности .Example. Так что андроид будет искать его с com.Android.myApp.Example. Но ваша деятельность находится в "com.Android.myApp/com.Android.myApp.Facebook.Example". Поэтому дайте название активности как .Facebook.Example или полный путь, как указано ниже В манифесте

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

</activity>

Ответ 2

вы также можете использовать

<activity
        android:name=".Facebook.Example"
        android:label="@string/app_name" />

Ответ 3

У меня есть вариация этой проблемы. Я запускал операцию под названием "Настройки" и получал ту же ошибку, и все предложенные изменения в манифесте не устраняли проблему.

Вещь, в вызывающей активности, я также использовал/импортировал android.provider.Settings, поэтому из того, что я могу видеть при попытке запуска этой активности, это путалось между ними. Таким образом, я изменил это в коде, а не на манифест, чтобы включить полный путь:

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

И это сработало. Конечно, другой, и лучший способ решить эту конкретную проблему - использовать более лучшие имена для моих действий.

HTH любой, у кого есть этот вариант проблемы.

Ответ 4

Из вашего исключения, которое является вашим классом - Facebook или Example Поскольку вы объявили в пакете в манифесте как com.Android.myApp Но, для Facebook активности вы объявили com.android.myApp.Facebook.Example И,

Если ваш инструмент означает ваш бизнес, вы должны объявить свою деятельность как com.android.myApp.Facebook.Example Потому что его из другого пакета или вашего имени деятельности как Facebook.Example Так что вы можете объявить свою активность, как показано ниже -

<activity
        android:name="com.Android.myApp.Facebook.Example"
        android:label="@string/app_name" />

Ответ 5

Просто убедитесь, что ваша активность украшена этим атрибутом:

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

Примечание. При необходимости установите только MainLauncher.

Ответ 6

Иногда, из-за существования того же имени класса (второй параметр Intent) в разных пакетах.

Я также обнаружил, что это происходит, когда вы вызываете startService вместо вызова startActivity и наоборот.

Ответ 7

Это работает, если у вас есть объект Activity (который нужно запустить):

 intent.setClassName(CallingActivity.this, activityToLaunch.getComponentName().getClassName());