Heim  >  Artikel  >  Java  >  Warum gibt meine Android-App die Fehlermeldung „Der Dateipfad ist ungültig“ aus, wenn sie versucht, eine PDF-Datei aus dem Assets-Ordner zu lesen?

Warum gibt meine Android-App die Fehlermeldung „Der Dateipfad ist ungültig“ aus, wenn sie versucht, eine PDF-Datei aus dem Assets-Ordner zu lesen?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-28 09:48:29750Durchsuche

Why is my Android app throwing a

Eine PDF-Datei aus dem Assets-Ordner lesen

Problem:

In einer Android-Anwendung Versuche, eine PDF-Datei aus dem Ordner „Assets“ mithilfe des bereitgestellten Codes zu lesen, führen zur Fehlermeldung „Der Dateipfad ist ungültig.“

Code:

Der relevante Der Codeabschnitt lautet wie folgt:

<code class="java">File file = new File("android.resource://com.project.datastructure/assets/abc.pdf");

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(file), "application/pdf");
startActivity(intent);</code>

Lösung:

Das Problem liegt im Pfad, der zum Dateiobjekt bereitgestellt wird. Der richtige Pfad sollte die PDF-Datei mit getAssets() aus dem Assets-Ordner abrufen.

<code class="java">AssetManager assetManager = getAssets();
InputStream in = assetManager.open("abc.pdf");
OutputStream out = openFileOutput("abc.pdf", Context.MODE_WORLD_READABLE);

// Copy PDF file to internal storage
copyFile(in, out);

// Create Intent and URI for file in internal storage
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.parse("file://" + getFilesDir() + "/abc.pdf"), "application/pdf");

startActivity(intent);</code>

Zusätzliche Hinweise:

  • Vergessen Sie nicht, hinzuzufügen die WRITE_EXTERNAL_STORAGE-Berechtigung für die Manifestdatei.
  • Die Methode copyFile() wird verwendet, um die PDF-Datei aus dem Assets-Ordner in den internen Speicher zu kopieren und sie für den Intent zugänglich zu machen.
  • Der URI ist erstellt mit Uri.parse(), um auf den Speicherort der Datei im internen Speicher zu verweisen.

Das obige ist der detaillierte Inhalt vonWarum gibt meine Android-App die Fehlermeldung „Der Dateipfad ist ungültig“ aus, wenn sie versucht, eine PDF-Datei aus dem Assets-Ordner zu lesen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn