56 votes

Android : aucune activité trouvée pour gérer l'erreur d'intention ? Comment ça va se résoudre

Aucune activité trouvée pour gérer l'erreur d'intention ? Comment ça va se résoudre.

 Preference customPref = (Preference) findPreference("DataEntryScreen"); 
   customPref
        .setOnPreferenceClickListener(new OnPreferenceClickListener() {
         public boolean onPreferenceClick(Preference preference) {                  

        Intent i = new Intent("com.scytec.datamobile.vd.gui.android.AppPreferenceActivity");
                 startActivity(i);
                  return true;                                        
               }
           });

59voto

Karthik Points 2261

Ajoutez ce qui suit à votre manifeste :

   <activity   android:name=".AppPreferenceActivity" android:label="@string/app_name">  
     <intent-filter> 
       <action android:name="com.scytec.datamobile.vd.gui.android.AppPreferenceActivity" />  
       <category android:name="android.intent.category.DEFAULT" />  
     </intent-filter>   
  </activity>

21voto

dans mon cas, j'étais sûr que l'action est correcte, mais je passais une mauvaise URL, j'ai passé le lien du site Web sans le http:// au début, donc cela a causé le même problème, voici mon manifeste (une partie de celui-ci )

 <activity
        android:name=".MyBrowser"
        android:label="MyBrowser Activity" >
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <action android:name="com.dsociety.activities.MyBrowser" />

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

            <data android:scheme="http" />
        </intent-filter>
    </activity>

lorsque je code ce qui suit, la même exception est levée au moment de l'exécution :

 Intent intent = new Intent();
intent.setAction("com.dsociety.activities.MyBrowser");
intent.setData(Uri.parse("www.google.com"));    // should be http://www.google.com
startActivity(intent);

17voto

Généralement pour éviter ce genre d'exceptions, vous devrez entourer votre code par try and catch comme ceci

 try{

// your intent here

} catch (ActivityNotFoundException e) {
// show message to user 
}

4voto

Amar Singh Points 331
if (intent.resolveActivity(getPackageManager()) == null) {
    Utils.showToast(activity, no_app_available_to_complete_this_task);
} else {
    startActivityForResult(intent, 1);
}

1voto

jeet Points 14950

Intent intent=new Intent(String) est défini pour la tâche de paramètre, alors que vous transmettez le paramètre componentname à celui-ci, utilisez à la place :

 Intent i = new Intent(Settings.this, com.scytec.datamobile.vd.gui.android.AppPreferenceActivity.class);
                    startActivity(i);

Dans cette instruction, remplacez ActivityName par le nom de la classe d'activité dans laquelle réside ce code.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X