2017-05-22 2 views
-3

います:InputStreamが、私はこのよう.P12ファイルを読むために私のAndroidアプリで新しいスレッドを作成しているjava.io.FileNotFoundException

AssetManager am = getAssets(); 
InputStream inputStream = am.open("C:\\Users\\UkrBikeApp-ff55878cb577.p12"); 

このファイルはディレクトリ内に存在します。しかし、毎回私はまねのコードは何の問題もなく、簡単なJavaアプリケーションで動作

java.io.FileNotFoundException

を取得します。理由は何ですか?

答えて

3

まず、C:\\Users\\UkrBikeApp-ff55878cb577.p12は、Windowsマシン上のファイルへのパスです。 AndroidはWindowsではありません。

次に、C:\\Users\\UkrBikeApp-ff55878cb577.p12はファイルシステムのパスです。それはあなたのAPK内の資産への道ではないので、AssetManagerはとにかくそれと何をするか分からないでしょう。

アプリでこのファイルをパッケージ化したい場合:

  • 適切なモジュールとソースのセット(例えば、app/src/main/assets/)でassets/ディレクトリを作成し

  • assets/

  • にファイルを置きます
  • open()AssetManagerと平文ファイル名に使用

+0

アセットからの入力ストリームからファイルを作成する方法はありますか? GoogleCredentialsでこのファイルを使用するには、このファイルが必要です。 – DzouSi

+0

@DzouSi: 'InputStream'を取得します。あなたがコントロールするいくつかのファイル( 'getFilesDir()'など)に 'FileOutputStream'を作成します。標準のJava I/Oを使用してバイトをコピーします。 – CommonsWare

関連する問題