我正在制作一个应用程序以连接到Google Calendar API,但是每当我尝试加载客户端机密时,都会出现IOException跳转。
我尝试过从更改文件的存储路径(首先将其保存在应用程序文件夹中,然后将其移动到res/assets
)到更改使用InputStream
打开文件的方式:
1º首先,代码是这样的:
private static final String CREDENTIALS_FILE_PATH = "assets/credentials.json";
InputStream in = this.class.getResourceAsStream(CREDENTIALS_FILE_PATH);
GoogleClientSecrets clientSecrets = GoogleClientSecrets.load(JSON_FACTORY, new InputStreamReader(in));
然后我尝试从资产中打开它:
InputStream in = this.getAssets().open("credentials.json");
GoogleClientSecrets clientSecrets = GoogleClientSecrets.load(JSON_FACTORY, new InputStreamReader(in));
但是无论我如何尝试,它都会给我java.io.FileNotFoundException: credentials.json
错误,并且我不确定是否是由于路径名,打开方式或其他原因造成的。
答案 0 :(得分:0)
调查之后,我发现了如何访问json。
首先是将文件从res/assets
移到res/raw
然后更改此行:
InputStream in = this.getAssets().open("credentials.json");
对此
InputStream in = this.getResources().openRawResource(R.raw.credentials);
现在可以毫无问题地读取文件