2017-10-18 21 views
0

root-CA.crtファイルをapp/src/main/assetsに含めました。
FileReaderパスエラー - ファイルが見つかりません


これをタイプし、エミュレータで実行しました。

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

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


そして、このエラーました:私はこのエラーを取得していますなぜ

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) 

を??私はすでに正しい経路について言及しています。しかし、なぜ?

答えて

1

file:///android_assetは、WebViewとのみ意味があります。他の場所では使用できません。

AssetManagerとそのopen()メソッドを使用して、アセットが表すコンテンツにInputStreamを取得します。必要に応じてInputStreamReaderにラップしてください。

+0

ありがとうございます!上記の '新しいFileReader(" file:///android_asset/root-CA.crt ")'コードまたはコード全体の最終結果は何ですか?私は本当にアンドロイドの開発に新しいです。 – Senura

+0

@Senura:私はあなたにそれを伝えることはできません。 'Context'(例えば、' Activity')で 'getAssets()'を呼び出すことによって 'AssetManager'を取得します。このコードがどこにあるのかわかりません。 [このサンプルアクティビティ](https://github.com/commonsguy/cw-omnibus/blob/v8.7/Camera/EXIFRotater/app/src/main/java/com/commonsware/android/exif/MainActivity.java) )、私は 'ExifInterface'オブジェクトに渡す、アセットとしてパッケージ化された画像上で' InputStream'を得るために 'open()'を使います。 – CommonsWare

+0

ありがとうございます...私はあなたが話したことをやったことがあります...今はそれが動作します。あなたの知識を共有していただければ幸いです。 +1 – Senura

関連する問題