java - 调用 serviceAccount.json 抛出 FileNotFoundException
问题描述
我正在尝试在我的项目中实现一个 Google API,我需要调用传入凭据的 serviceAccount.json。
这是我的代码:
public class MainActivity extends AppCompatActivity {
private static final String TAG = MainActivity.class.getSimpleName();
private static final String SERVICE_ACCOUNT_CREDENTIAL_FILE = "/home/and03/AndroidStudioProjects/Parent/app/src/main/res/assets/serviceAccount.json";
private static final String OAUTH_SCOPE = "https://www.googleapis.com/auth/androidmanagement";
AndroidManagement androidManagement;
String json,abcd;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
try {
FileInputStream input = new FileInputStream(SERVICE_ACCOUNT_CREDENTIAL_FILE);
GoogleCredential credential = GoogleCredential.fromStream(input).createScoped(Collections.singleton(OAUTH_SCOPE));
androidManagement = new AndroidManagement(GoogleNetHttpTransport.newTrustedTransport(),JacksonFactory.getDefaultInstance(),credential);
//createEnterprise(androidManagement);
Log.e(TAG, "onCreate: "+ androidManagement );
} catch (GeneralSecurityException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
private String createEnterprise(AndroidManagement androidManagementClient)
throws IOException {
SignupUrl signupUrl =
androidManagementClient
.signupUrls()
.create()
.setProjectId("managementtest")
.setCallbackUrl("https://unsplash.com/v1/signupUrls")
.execute();
String enterpriseToken = displayUrlToAdmin(signupUrl.getUrl());
Enterprise enterprise =
androidManagementClient
.enterprises()
.create(new Enterprise())
.setProjectId("managementtest")
.setSignupUrlName(signupUrl.getName())
.setEnterpriseToken(enterpriseToken)
.execute();
return enterprise.getName();
}
private String displayUrlToAdmin(String url) {
Log.i("My Url",url);
return url;
}
}
这是我从此处描述的谷歌文档中的示例中获取的代码
我知道我们需要 FileInputStream 从 assets 文件夹中调用这个文件,但它仍然显示 filenotfoundException。
还有另一个示例应用程序显示了完整的演示
查看:
我只想知道,如何在我的应用程序中使用 .json 文件的路径,以便它能够正确运行。
解决方案
推荐阅读
- java - 从main中的另一个类方法调用数组
- asp.net - EF Core 中的错误:在前一个操作完成之前在此上下文中启动了第二个操作
- javascript - 使用媒体片段并防止浏览器重新加载目标 HTMLMediaElement
- mongodb - Mongodb是否可以将“跳过”指定为索引范围?
- amazon-sqs - SQS - 为什么限制最大消息大小?
- spring-boot - Spring AccessDeniedException:访问被拒绝但登录成功(我被重定向到家)
- sql-server - SSIS 如何在平面文件目标中抑制 CR/LF?
- python - 导入给定模块的所有功能与仅导入我们需要的那些功能之间的内存和性能差异是什么?
- zsh - zsh 数组分配和无匹配错误
- c# - .NET Core EF Core 2 Models in 1 View 创建操作