2016-05-18 5 views
2

Ich versuche, eine PreferenceActivity in meiner Anwendung zu implementieren, im Anschluss an die akzeptierte Antwort in this questionDie explizite Aktivitätsklasse konnte nicht gefunden werden. Haben Sie diese Aktivität in AndroidManifest.xml erklärt

ich die oben genannte Ausnahme

android.content.ActivityNotFoundException: Unable to find explicit activity class {com.iphonik.chameleon/com.iphonik.AppPreferenceActivity}; have you declared this activity in your AndroidManifest.xml? 

AndroidManifest.xml bekommen

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

    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.GET_TASKS" /> 
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> 
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 
    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

    <application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:supportsRtl="true" 
     android:theme="@android:style/Theme.NoTitleBar"> 
     <activity android:name=".MainMenu"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity android:name=".Movies" /> 
     <activity android:name=".SettingsActivity" /> 
     <activity android:name=".InfoActivity" /> 

     <receiver 
      android:name=".AppBroadcastReciever" 
      android:enabled="true" 
      android:exported="true" 
      android:permission="android.permission.RECEIVE_BOOT_COMPLETED"> 
      <intent-filter> 
       <action android:name="android.intent.action.BOOT_COMPLETED" /> 

       <category android:name="android.intent.category.DEFAULT" /> 
      </intent-filter> 
     </receiver> 

     <activity android:name=".Info2Activity" /> 
     <activity android:name=".ItemDetailActivity" /> 
     <activity android:name=".TVActivity" /> 
     <activity android:name="com.iphonik.chameleon.AppPreferenceActivity" 
      android:label="Preferences"> 
     </activity> 
    </application> 

</manifest> 

Die Aktivität starten Code

@Override 
    public boolean onOptionsItemSelected(MenuItem item){ 
     switch(item.getItemId()) { 
      case R.id.preferences: 
       Intent intent = new Intent(); 
       intent.setClassName(this, "com.iphonik.AppPreferenceActivity"); 
       startActivity(intent); 
       return true; 
     } 
     return super.onOptionsItemSelected(item); 
    } 
+1

Nur 'com.iphonik.chameleon.AppPreferenceActivity' ändern' com.iphonik.AppPreferenceActivity' –

Antwort

0

Von Ihrem Manifest

<activity android:name="com.iphonik.chameleon.AppPreferenceActivity" 
      android:label="Preferences"> 
     </activity> 

entfernen com.iphonik.chameleon diese

und sieht aus wie

<activity android:name=".AppPreferenceActivity" 
       android:label="Preferences"> 
      </activity> 
0

Ändern Sie diese Zeilen

<activity android:name="com.iphonik.chameleon.AppPreferenceActivity" 
      android:label="Preferences"> 
     </activity> 

zu

<activity android:name="com.iphonik.AppPreferenceActivity" 
      android:label="Preferences"> 
     </activity> 

in Manifest

+0

Es ist nicht das Manifest, sondern die Aktivität, die den Code startet. Es sollte sich in intent.setClassName ändern (dies, "com.iphonik.chameleon.AppPreferenceActivity"); – PrashanD

0

ändern

<activity android:name="com.iphonik.chameleon.AppPreferenceActivity" 
     android:label="Preferences"> 

zu

<activity android:name="com.iphonik.AppPreferenceActivity" 
     android:label="Preferences"> 
0

müssen Sie überprüfen, dass, wenn dieser Weg in Ihrem Klassenpfad excist ist. com.iphonik.chameleon.AppPreferenceActivity.

0

Ändern Sie diese

<activity android:name="com.iphonik.chameleon.AppPreferenceActivity" 
     android:label="Preferences"> 

zu

<activity android:name=".AppPreferenceActivity" 
     android:label="Preferences"> 
0

Verwenden Sie den folgenden Code

Manifest.xml

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

    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.GET_TASKS" /> 
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> 
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 
    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

    <application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:supportsRtl="true" 
     android:theme="@android:style/Theme.NoTitleBar"> 
     <activity android:name=".MainMenu"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity android:name=".Movies" /> 
     <activity android:name=".SettingsActivity" /> 
     <activity android:name=".InfoActivity" /> 

     <receiver 
      android:name=".AppBroadcastReciever" 
      android:enabled="true" 
      android:exported="true" 
      android:permission="android.permission.RECEIVE_BOOT_COMPLETED"> 
      <intent-filter> 
       <action android:name="android.intent.action.BOOT_COMPLETED" /> 

       <category android:name="android.intent.category.DEFAULT" /> 
      </intent-filter> 
     </receiver> 

     <activity android:name=".Info2Activity" /> 
     <activity android:name=".ItemDetailActivity" /> 
     <activity android:name=".TVActivity" /> 
     <activity android:name=".AppPreferenceActivity" 
      android:label="Preferences"> 
     </activity> 
    </application> 

</manifest> 

Der Aktivitätscode startet

@Override 
    public boolean onOptionsItemSelected(MenuItem item){ 
     switch(item.getItemId()) { 
      case R.id.preferences: 
       Intent intent = new Intent(currentActivityName.this, AppPreferenceActivity.class); 
       startActivity(intent); 
       return true; 
     } 
     return super.onOptionsItemSelected(item); 
    } 
3

erklären, um Ihre Aktivität wie folgt aus:

<activity 
     android:name=".AppPreferenceActivity" 
     android:label="Preferences" > 
     <intent-filter> 
      <action android:name="com.iphonik.chameleon.AppPreferenceActivity" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
     </intent-filter> 
    </activity> 

und es verwenden:

Intent i = new Intent("com.iphonik.chameleon.AppPreferenceActivity"); 
+0

Fehler beim Ausführen der App. Standardaktivität Nicht gefunden. So hat es für mich nicht funktioniert! –

Verwandte Themen