2017-07-30 3 views
0

私はボタンをクリックして自動メールを送信する必要があるアプリで作業しています。私が現在持っている問題は、jsonファイルを読み込む必要があり、アセットに格納されているjsonのパスを新しい​​に渡すと、ファイルが見つかりません。Exceptionです。ここで私はパスを取得しています。 (Uri.parse().toStringが冗長である場合には不思議):私はアクセスにattempingいJSONファイルは、下の私のアプリの資産フォルダにあるjsonアセットを読み込もうとしたときにFileNotFoundExceptionが発生しました

sClientSecrets = GoogleClientSecrets 
     .load(jsonFactory, new FileReader(CLIENT_SECRET_PATH)); 

private static final String CLIENT_SECRET_PATH = 
     Uri.parse("file:///android_asset/raw/sample/***.json").toString() 

、ここでは、私はにそれを渡しています方法であり、 (/ app/assets /)

ここで間違っていることはわかりませんが、私はそれが何か簡単だと確信しています。私を正しい方向に向けるのを助けてください。

+0

あなたの**。jsonファイルは、「生の」アセットディレクトリ内の「サンプル」フォルダ内にありますか? –

答えて

0

@Rohit ..あなたの問題を解決することを願っています。その唯一の問題は、私が使用しているGmail APIが、文字列ではなくパラメータとしてReaderを必要とすることでした。ここに私がしたことがあります。そして、私はもはやfilenotfoundexceptionを得ていません。どうもありがとうございました。

public InputStreamReader getJsonStreamReader(String file){ 
    InputStreamReader reader = null; 
    try { 
     InputStream in = getAssets().open(file); 
     reader = new InputStreamReader(in); 
    }catch(IOException ioe){ 
     Log.e("launch", "error : " + ioe); 
     } 
    return reader; 
} 
1

ダイレクトファイルパスを使用してアセットにアクセスしないでください。 ファイルがパックされ、各デバイスで場所が変更されます。 あなたはより多くの情報を参照してくださいthis post資産パス

getAssets().open() 

を取得するために、ヘルパー関数を使用する必要があります。

1

この関数を使用すると、アセットからJSON文字列を取得し、その文字列をFileReaderに渡すことができます。

public String loadJSONFromAsset() { 
    String json = null; 
    try { 
     InputStream is = getActivity().getAssets().open("yourfilename.json"); 
     int size = is.available(); 
     byte[] buffer = new byte[size]; 
     is.read(buffer); 
     is.close(); 
     json = new String(buffer, "UTF-8"); 
    } catch (IOException ex) { 
     ex.printStackTrace(); 
     return null; 
} 
return json; 
} 
+0

私はあなたの提供した方法を使って私が必要なものを構築することができました。ありがとうございました。下記の回答を参照してください。 –

0

raw-sampleではなく、assetsディレクトリの中に直接ファイルを保存します。その後、

とパスをファイルには、この

private static final String CLIENT_SECRET_PATH = 
    Uri.parse("file:///android_asset/***.json").toString() 

ようになり、私はあなたが出発点として提供される方法を使用することができました

関連する問題