Android: Keine Aktivität zur Behandlung des Absichtsfehlers gefunden? Wie es sich lösen wird
Lesezeit: 1 Minute
Ahmad Arslan
Keine Aktivität zur Behandlung des Absichtsfehlers gefunden? Wie es sich lösen wird.
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;
}
});
hast du den Intent-Filter registriert ("com.scytec.datamobile.vd.gui.android.AppPreferenceActivity") für die Aktivität in manistst?
– Karthik
6. Februar 2012 um 8:42 Uhr
Nein . wie kann es? Bitte schreiben Sie die richtige Absicht? ich meine Code
– Ahmad Arslan
6. Februar 2012 um 8:43 Uhr
Posten Sie hier Ihre Manifestdatei (mit dem Eintrag, der der Aktivität entspricht – AppPreferenceActivity). dann können wir Ihnen mit dem richtigen Code helfen.
– Karthik
6. Februar 2012 um 8:46 Uhr
– Ahmad Arslan
6. Februar 2012 um 8:58 Uhr
das Manifest hat keine AppPreferenceActivity? Sie können Ihre Frage bearbeiten, um den Inhalt der Manifestdatei zu veröffentlichen. Kommentarbereich nicht verwenden.
In meinem Fall war ich mir sicher, dass die Aktion korrekt ist, aber ich habe eine falsche URL übergeben, ich habe den Website-Link ohne das http:// am Anfang übergeben, also hat es das gleiche Problem verursacht, hier ist mein Manifest (ein Teil davon )
Wenn ich Folgendes codiere, wird zur Laufzeit dieselbe Ausnahme ausgelöst:
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);
Um diese Art von Ausnahmen zu vermeiden, müssen Sie Ihren Code im Allgemeinen mit try and catch wie diesem umgeben
try{
// your intent here
} catch (ActivityNotFoundException e) {
// show message to user
}
Ich stimme dir nicht zu. Was Sie tun sollten, ist zuerst zu prüfen, ob die Absicht von einer Aktivität verarbeitet werden kann ` if (intent.resolveActivity(getPackageManager()) != null) { startActivity(intent); } `
– Markus Pazon
15. März 2018 um 7:22 Uhr
@MarkPazon dies funktioniert in 99% der Fälle, aber wenn Sie eine Aktivität haben, die ein benutzerdefiniertes Schema verarbeitet, kann es zu einem Absturz kommen, wenn der Benutzer eine alte Version der App ohne das neue Schema im Manifest ausführt.
Intent Intent=new Intent(String) ist für die Parameteraufgabe definiert, während Sie den Parameterkomponentennamen an diese übergeben, verwenden Sie stattdessen:
Intent i = new Intent(Settings.this, com.scytec.datamobile.vd.gui.android.AppPreferenceActivity.class);
startActivity(i);
Ersetzen Sie in dieser Anweisung ActivityName durch den Namen der Aktivitätsklasse, in der sich dieser Code befindet.
Der Konstruktor Intent(new Preference.OnPreferenceClickListener(){}, Class) ist undefiniert
– Ahmad Arslan
6. Februar 2012 um 9:01 Uhr
Verwenden Sie stattdessen nur Ihren ersten Aktivitätsnamen anstelle von ActivityName, da der erste Parameter eine Instanz einer Aktivität sein sollte.
– Jeet
6. Februar 2012 um 9:22 Uhr
Aligur
Wenn Sie die Aktivität bearbeiten, die in keinem anderen Modul gefunden werden konnte, vergewissern Sie sich, dass Sie die folgende Zeile in Ihrem Modul hinzugefügt haben build.gradle Datei:
implementation project(':YOUR-MODULE-ROOT')
Der Konstruktor Intent(new Preference.OnPreferenceClickListener(){}, Class) ist undefiniert
– Ahmad Arslan
6. Februar 2012 um 9:01 Uhr
Verwenden Sie stattdessen nur Ihren ersten Aktivitätsnamen anstelle von ActivityName, da der erste Parameter eine Instanz einer Aktivität sein sollte.
– Jeet
6. Februar 2012 um 9:22 Uhr
10985700cookie-checkAndroid: Keine Aktivität zur Behandlung des Absichtsfehlers gefunden? Wie es sich lösen wirdyes
hast du den Intent-Filter registriert (
"com.scytec.datamobile.vd.gui.android.AppPreferenceActivity"
) für die Aktivität in manistst?– Karthik
6. Februar 2012 um 8:42 Uhr
Nein . wie kann es? Bitte schreiben Sie die richtige Absicht? ich meine Code
– Ahmad Arslan
6. Februar 2012 um 8:43 Uhr
Posten Sie hier Ihre Manifestdatei (mit dem Eintrag, der der Aktivität entspricht – AppPreferenceActivity). dann können wir Ihnen mit dem richtigen Code helfen.
– Karthik
6. Februar 2012 um 8:46 Uhr
– Ahmad Arslan
6. Februar 2012 um 8:58 Uhr
das Manifest hat keine AppPreferenceActivity? Sie können Ihre Frage bearbeiten, um den Inhalt der Manifestdatei zu veröffentlichen. Kommentarbereich nicht verwenden.
– Karthik
6. Februar 2012 um 9:12 Uhr