2017-10-18 5 views
0

Ich habe meine root-CA.crt Datei in app/src/main/assets aufgenommen.
FileReader Pfadfehler - Datei nicht gefunden


Ich habe dies eingegeben und auf dem Emulator ausgeführt.

PEMParser reader = new PEMParser(new FileReader("file:///android_asset/root-CA.crt")); 

      X509CertificateHolder caCertHolder = (X509CertificateHolder) reader.readObject(); 
      reader.close(); 


Und habe diesen Fehler:

10-18 20:47:34.601 10617-10617/? W/System.err: java.io.FileNotFoundException: /file:/android_asset/root-CA.crt: open failed: ENOENT (No such file or directory) 
10-18 20:47:34.601 10617-10617/? W/System.err:  at libcore.io.IoBridge.open(IoBridge.java:416) 
10-18 20:47:34.601 10617-10617/? W/System.err:  at java.io.FileInputStream.<init>(FileInputStream.java:78) 
10-18 20:47:34.601 10617-10617/? W/System.err:  at java.io.FileInputStream.<init>(FileInputStream.java:105) 
10-18 20:47:34.611 10617-10617/? W/System.err:  at java.io.FileReader.<init>(FileReader.java:66) 

Warum ich diese Störung erhalten ?? Ich habe bereits den richtigen Weg erwähnt. Aber warum?

Antwort

1

file:///android_asset ist nur sinnvoll mit WebView. Es kann nicht anderswo verwendet werden.

Verwenden Sie AssetManager und seine open() Methode, um eine InputStream auf den Inhalt von Ihrem Asset dargestellt zu erhalten. Wickeln Sie das in einem InputStreamReader nach Bedarf.

+0

Danke ... !! Was wird das Endergebnis für den obigen 'neuen FileReader (" file: ///android_asset/root-CA.crt ")' Code oder den ganzen Code sein? Ich bin wirklich neu in der Android-Entwicklung. – Senura

+0

@Senura: Das kann ich dir nicht sagen. Sie erhalten einen 'AssetManager', indem Sie' getAssets() 'auf einem' Kontext' aufrufen (z. B. eine 'Aktivität'), und ich weiß nicht, wo sich dieser Code befindet. In [dieser Beispielaktivität] (https://github.com/commonsguy/cw-omnibus/blob/v8.7/Camera/EXIFRotater/app/src/main/java/com/commonsware/android/exif/MainActivity.java), Verwende ich 'open()', um einen 'InputStream' auf einem Bild zu erhalten, das als Asset verpackt ist und an ein 'ExifInterface'-Objekt weitergegeben wird. – CommonsWare

+0

Danke ... Ich habe getan, was Sie gesagt haben ... und jetzt funktioniert es. Schätzen Sie Ihr Wissen. +1 – Senura

Verwandte Themen