2016-08-21 3 views
2

주 화면의 메뉴에서 선택한 옵션으로 새 활동으로 이동하려고합니다. 이 작업을 수행하는 코드는 활동이 즉시 오류메뉴에서 새 활동을 열 때 오류가 발생했습니다.

Unable to find explicit activity class {com.test.test_controller/com.test.test_controller.SettingsActivity}; have you declared this activity in your AndroidManifest.xml? 
로 startActivity를 줄 안타

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.test.test_controller"> 

<uses-permission android:name="android.permission.BLUETOOTH" /> 
<application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:supportsRtl="true" 
    android:theme="@style/AppTheme"> 
    <activity 
     android:name=".MainActivity" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme.NoActionBar" 
     android:screenOrientation="landscape" 
     android:configChanges="keyboardHidden|orientation"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
     <activity android:name=".SettingsActivity" /> 

응용 충돌 아래로 내 매니페스트 파일에 설정되어

public boolean onOptionsItemSelected(MenuItem item) { 
    switch(item.getItemId()) { 
     case R.id.action_settings: 
      Intent settingsIntent = new Intent(this, SettingsActivity.class); 
      this.startActivity(settingsIntent); 
      break; 

입니다

필자는 안드로이드를 오랫동안 사용해 왔기 때문에 왜 패키지 이름을 두 번 넣었는지 이해할 수 없다. 내 설정을 확인한 결과 앱 ID가 매니페스트의 패키지 이름과 같아서 무엇이 잘못 되었습니까?

+1

기본 활동의 활동 태그 외부에서 새 활동을 선언하십시오. –

+1

[Android 오류 "명시적인 활동 클래스를 찾을 수 없습니다"] (http://stackoverflow.com/questions/8107789/android-error-unable -to-find-explicit-activity-class) – Ironman

답변

0

</activity> 태그를 추가합니다.

<activity 
     android:name=".MainActivity" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme.NoActionBar" 
     android:screenOrientation="landscape" 
     android:configChanges="keyboardHidden|orientation"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
     </activity> // add this tag here 
     <activity android:name=".SettingsActivity" /> 
0

는 안드로이드 매니페스트에 SettingsActivity를 선언 : <intent-filter> 그래서 시스템이 그 두 가지 활동을 고려할 것입니다 후

<activity 
    android:name=".SettingsActivity"> 
    <intent-filter> 
     <action android:name="android.intent.action.MAIN" /> 
    </intent-filter> 
</activity> 
0

Manifest 파일을 확인하십시오. .MainActivity에 대한 <activity> 태그는 닫히지 않았습니다.

Manifest 파일은 다음과 같아야합니다.

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.test.test_controller"> 

<uses-permission android:name="android.permission.BLUETOOTH" /> 
<application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:supportsRtl="true" 
    android:theme="@style/AppTheme"> 
    <activity 
     android:name=".MainActivity" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme.NoActionBar" 
     android:screenOrientation="landscape" 
     android:configChanges="keyboardHidden|orientation"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
     </activity>// add this 
     <activity android:name=".SettingsActivity" /> 

는 희망이 도움이!

관련 문제