2013-10-11 3 views
1

В настоящее время я использую андроид-студию, и я включил свои действия в файл манифеста, и я считаю, что правильно его называю. Я получаю эту ошибку, хотя:Android Exception Intent, активность не найдена

Вызванный: android.content.ActivityNotFoundException: Unable to find explicit activity class {/com.ca.android.easycall.customers1}; have you declared this activity in your AndroidManifest.xml?

Это мой вызов:

Intent actCustomers1 = new Intent(this, customers1.class); 
startActivity(actCustomers1); 

Вот мой манифест:

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

    <permission android:name="android.permission.CALL_PHONE" /> 

    <uses-permission android:name="android.permission.CALL_PHONE" /> 

    <uses-sdk 
     android:minSdkVersion="7" 
     android:targetSdkVersion="18" /> 

    <application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 
     <activity 
      android:name="com.ca.android.easycall.MainActivity" 
      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=".customers1" 
      android:label="@string/title_activity_customers1" > 
     </activity> 
     <activity 
      android:name=".customers2" 
      android:label="@string/title_activity_customers2" > 
     </activity> 
    </application> 

</manifest> 
+2

Почему это необходимо: <разрешение андроида: имя = «android.permission.CALL_PHONE» /> когда у вас есть разрешение на использование? – Manish

+0

hii ,, Проверьте путь, который вы определили в android: имя правильное. для каждой вашей деятельности. – MDroid

ответ

1

Попробуйте это,

<activity 
     android:name="com.ca.android.easycall.customers1" 
     android:label="@string/title_activity_customers1" > 
    </activity> 
    <activity 
     android:name="com.ca.android.easycall.customers2" 
     android:label="@string/title_activity_customers2" > 
    </activity> 
+0

Я тоже пробовал, чтобы не повезло. – user2869649

0

Пожалуйста, измените ваш Manifest.xml так:

<activity 
     android:name="com.ca.android.easycall.customers1" 
     android:label="@string/title_activity_customers1" > 
    </activity> 
    <activity 
     android:name="com.ca.android.easycall.customers2" 
     android:label="@string/title_activity_customers2" > 
    </activity> 

Я надеюсь, что это помогает.

+0

Это не имеет значения. Когда у вас есть точка спереди, Android автоматически добавит имя пакета перед именем активности. – Krypton

3

Из того, что вы в курсе, это выглядит как ваш класс customers1 не объявлен в пакете com.ca.android.easycall

Если у вас есть что-то вроде android:name=".customers1", Android компилятор попытается предварять его с именем пакета package="com.ca.android.easycall", поэтому он становится com.ca.android.easycall.customers1

Цитируется Android чиновника documentation:

андроид: имя

Название класса, реализующего деятельность, подкласс . Значением атрибута должно быть полное имя класса (например, «com.example.project.ExtracurricularActivity»). Однако в качестве сокращения, если первым символом имени является период (например, «.ExtracurricularActivity»), он добавляется к имени пакета, указанного в элементе.

Однако, поскольку вы получили журнал ошибок:

Caused by: android.content.ActivityNotFoundException: Unable to find explicit activity class {/com.ca.android.easycall.customers1}; have you declared this activity in your AndroidManifest.xml? 

Так должно быть или customers1 не объявлен или customers1 не находится в com.ca.android.easycall пакете

+0

Сбивая с толку часть, она объявлена ​​в моем манифесте и находится в пакете. http://i.imgur.com/EKSpJcZ.png – user2869649

+1

Вы положили 'пакет com.ca.android.easycall; 'в верхней части ваших файлов в этом пакете? http://docs.oracle.com/javase/tutorial/java/package/createpkgs.html –

+0

Я согласен с Грэмом, вы должны проверить, есть ли у вас другой пакет в объявлении этого пакета. – Krypton

0

Проверьте пакет в верхней части деятельности файл. Возможно, у мероприятий есть другой пакет, чем ваше приложение.

Если она отличается изменить его на тот, который вы имеете в своем манифесте com.ca.android.easycall

Смежные вопросы