2012-09-01 57 views
0

這裏是logcat的錯誤:活動未發現異常的Android

FATAL EXCEPTION: Thread-8 
android.content.ActivityNotFoundException: No Activity found to handle Intent { act=com.slehmann.volumetimechanger.MAINACTIVITY } 

這裏是我的清單:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.slehmann.volumetimechanger" 
    android:versionCode="1" 
    android:versionName="1.0" > 
    <uses-sdk 
     android:minSdkVersion="8" 
     android:targetSdkVersion="15" /> 

    <application 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 
     <activity 
      android:screenOrientation="portrait" 
      android:name=".MainActivity" 
      android:label="@string/title_activity_main" > 
      <intent-filter> 
       <action android:name="com.slehmann.volumetimechanger.APP" /> 

       <category android:name="android.intent.category.DEFAULT" /> 
      </intent-filter> 
     </activity> 
     <receiver android:process=":remote" android:name="AlarmReceiver"/> 
      <activity 
      android:screenOrientation="portrait" 
      android:label="@string/app_name" 
      android:name=".splash" > 
      <intent-filter > 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
    </application> 
</manifest> 

這裏是我的意圖:

} finally { 
    Intent openMenus = new Intent("com.slehmann.volumetimechanger.MAINACTIVITY"); 
    startActivity(openMenus); 
} 

回答

2

您應該使用

} finally { Intent openMenus = new Intent("com.slehmann.volumetimechanger.APP"); startActivity(openMenus); } 

} finally { Intent openMenus = new Intent(CLASSNAME.this, TARGETCLASSNAME.class); startActivity(openMenus); } 

或改變manifest.xml

<uses-sdk 
    android:minSdkVersion="8" 
    android:targetSdkVersion="15" /> 

<application 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <activity 
     android:screenOrientation="portrait" 
     android:name=".MainActivity" 
     android:label="@string/title_activity_main" > 
     <intent-filter> 
      <action android:name="com.slehmann.volumetimechanger.MAINACTIVITY" /> 

      <category android:name="android.intent.category.DEFAULT" /> 
     </intent-filter> 
    </activity> 
    <receiver android:process=":remote" android:name="AlarmReceiver"></receiver> 
     <activity 
     android:screenOrientation="portrait" 
     android:label="@string/app_name" 
     android:name=".splash" > 
     <intent-filter > 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
</application> 
0

你有一個愚蠢的錯誤,你的活動名稱是MainActivity和你的意圖叫你已經宣佈它爲MAINACTIVITY爲發生的原因。這就好比 -

finally { 
       Intent openMenus = new Intent("com.slehmann.volumetimechanger.MainActivity"); 
       startActivity(openMenus); 
      } 
+0

Action * strings *與可以處理它們的Activity *類*名無關。 – bigstones

0

您的活動名稱是MainActivitymanifest和通話時的意圖,然後使用MAINACTIVITY這個原因,發生的事情。請記住uppercaselowercase

和另一件事:

只有一個活動應與發射的類別進行登記。

<activity android:name=".FirstClassName" 
     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=".SecondClassName"/> 

因此宣佈進入清單:

<activity 
    android:screenOrientation="portrait" 
    android:name=".MainActivity" 
    android:label="@string/title_activity_main" > 

</activity> 

用於在MainActivity申報取出

<intent-filter> 
    // 
     </intent-filter> 

從清單。