Android: Aktivität nicht gefunden Ausnahme auf einigen Geräten, beim Versuch, lokale HTML - Datei im Browser zu öffnen

8

Ich stoße auf einen seltsamen Fehler, wenn ich versuche, eine lokale HTML-Datei im Android-Browser zu öffnen. Der Fehler, der auftritt, ist eine Ausnahme für die Aktivität nicht gefunden:

%Vor%

Was mir wirklich komisch ist, ist die Tatsache, dass dieser Fehler nicht auf allen Geräten auftritt. Es kommt nur auf den folgenden Geräten auf:

  • Samsung Galaxy Nexus I (4.1.1)
  • Samsung Galaxy Nexus II (4.1.1)
  • Sony Tablet S (4.0.3)

Ich habe meinen Code erfolgreich auf folgenden Geräten getestet:

  • Samsung Galaxy S I (4.1.1)
  • Samsung Galaxy S III
  • HTC One X
  • HTC Desire S
  • Samsung Galaxy S Plus (2.3.3)
  • Samsung Galaxy Tab 10.1N
  • AVDs mit Android-Versionen von 2.3.3 bis 4.1.0

Endlich ist das der Code den ich benutze um meine HTML - Datei mit dem Android - Browser zu öffnen. Ich habe mehrere Permutationen dieses Codes getestet, einige Zeilen weggelassen, aber sie haben alle den gleichen Effekt. Sobald ich Komponente oder Klasse I gesetzt habe, bekomme ich die obige Ausnahme.

%Vor%

Ich habe es auch versucht

%Vor%

statt

%Vor%

Aber mit dem gleichen Effekt ...

Hat jemand eine Idee, warum das passiert, vermisse ich etwas? Ich habe nach Tagen auf diesem gesucht, aber konnte nichts finden, das mein Problem löste ...

Vielen Dank im Voraus, Prost

    
Henning 01.08.2012, 08:39
quelle

4 Antworten

14

Möglich Da möglicherweise keine Aktivität wie com.android.browser.BrowserActivity in diesen Geräten vorhanden ist, hängt vom Gerätehersteller ab Wie sie die native Browser-Anwendung (Name der Aktivität und Name des Pakets).

Also ist die mögliche Lösung,

Mit PackageManger und Intent können Sie prüfen, ob eine bestimmte Intent-Kategorie wie Intent.CATEGORY_BROWSABLE für jede Anwendung verfügbar ist, falls verfügbar, und dann diese Anwendung für ComponentName festlegen.

Oder Sie geben keinen Komponentennamen wie

an %Vor%

Lassen Sie den Benutzer wählen, welche Aktivität diese Seite öffnet,

Also ist nur Code,

%Vor%     
user370305 01.08.2012 08:43
quelle
7

In einigen Szenarien möchten Sie vielleicht den nativen Browser verwenden, anstatt den Benutzer auswählen zu lassen. So habe ich ActivityNotFoundException durch einen anderen Paketnamen vermieden. Ich hoffe, dies würde helfen:)

%Vor%     
Bastet 06.02.2013 07:25
quelle
4

Warum lassen Sie es nicht dem System überlassen, um zu bestimmen, welche App verwendet werden soll? Wenn ich zum Beispiel Chrome installiert habe und Chrome verwenden möchte, bin ich ein bisschen sauer, dass Sie den Standard-Browser auf mich gezwungen haben.

Das sollte funktionieren:

%Vor%     
copolii 24.09.2014 18:32
quelle
1

Warum geben Sie eine Komponente an? lass es außerhalb deiner Absicht und du solltest in Ordnung sein; Aktion, Kategorie und Daten / Typ reichen aus.

    
avimak 01.08.2012 08:43
quelle