2013-10-11 86 views
1

我目前正在使用android工作室,我把我的活動放在清單文件中,我相信我正確地調用它。我一直儘管收到此錯誤:Android異常意圖,找不到活動

產生的原因: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

的android:命名

實現活動的類的名稱,活動的子類 。屬性值應該是完全合格的 類名(例如「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

你把'package com.ca.android。easycall;'在該文件包的頂部? http://docs.oracle.com/javase/tutorial/java/package/createpkgs.html –

+0

我同意格雷厄姆,你應該檢查你是否在該包聲明中有其他包。 – Krypton

0

檢查包裝在活動的頂部文件。也許這些活動與你的應用程序有不同的包裝。

如果它不同的變化,以您在清單com.ca.android.easycall有一個