为什么GoogleCredentials.fromStream(myJson)变为null?

时间:2019-05-15 08:37:46

标签: java android google-cloud-platform google-api

我有一个服务帐户,我将一个Json文件下载到了我的android studio的“ assets”文件夹中。然后,我从Google自己的文档中复制/粘贴了代码,并得到null。

我尝试了各种方式来读取我的json文件,但都为空。

void AuthExplicit(){

        GoogleCredentials credentials = null;
        try {
               credentials = GoogleCredentials.fromStream(new FileInputStream("auth.json"))
                    .createScoped(Lists.newArrayList(Collections.singleton("https://www.googleapis.com/auth/cloud-platform")));
        } 
        catch (IOException e) {
            e.printStackTrace();
        }

        new RefreshCred().execute(credentials);
        token = credentials.getAccessToken();
        tokenString = token.toString();

    }

EDIT1 因此,我在res下创建了一个原始文件夹,并将auth.json文件放入其中。然后将我的代码更改为以下内容。凭据仍然为空。

void AuthExplicit(){
        try
        {
            InputStream stream = getResources().openRawResource(R.raw.auth);
            GoogleCredentials credentials = GoogleCredentials.fromStream(stream);
            token = credentials.getAccessToken();
            tokenString = token.toString();
            Log.i("Token",tokenString);
            new RefreshCred().execute(credentials);
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }

    }

1 个答案:

答案 0 :(得分:0)

您应该将资产提取到电话上的某个目录中,而不是直接从资产文件夹中加载它。有关更多详细信息,请查看this答案。