Android: Geen activiteit gevonden om de intentieve fout aan te pakken? Hoe het zal oplossen

Geen activiteit gevonden om de intentieve fout aan te pakken? Hoe het zal oplossen.

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;                                        
               }
           });

Antwoord 1, Autoriteit 100%

Voeg het onderstaande toe aan uw manifest:

 <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>

Antwoord 2, Autoriteit 38%

In mijn geval was ik er zeker van dat de actie correct is, maar ik passeerde een verkeerde URL, ik passeerde de link met de website zonder de http: // in het begin, dus het veroorzaakte hetzelfde probleem, hier is mijn manifest ( een deel ervan)

<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>

wanneer ik het volgende codeer, wordt dezelfde uitzondering gegenereerd tijdens runtime:

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);

Antwoord 3, autoriteit 27%

Om dit soort uitzonderingen te voorkomen, moet je je code meestal omringen door te proberen en te vangen op deze manier

try{
// your intent here
} catch (ActivityNotFoundException e) {
// show message to user 
}

Antwoord 4, autoriteit 6%

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

Antwoord 5, autoriteit 2%

Intent intent=new Intent(String) is gedefinieerd voor parametertaak, terwijl u parameter componentnaam hierin doorgeeft, gebruik in plaats daarvan:

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

In deze instructie vervangt u ActivityName door de naam van de activiteitsklasse, deze code bevindt zich in.

Other episodes