【发布时间】:2018-10-08 23:07:43
【问题描述】:
我正在尝试根据https://developers.google.com/sheets/api/quickstart/java 通过 java 连接到谷歌电子表格。
如果我在我的 IDE 上执行此示例,它可以正常工作。 现在我想将此示例集成到我的 android 应用程序中。第一个activity直接调用上一个链接的main-method(代码在链接的step3中,main方法已经改名,以便被activity调用)。但我收到一个错误:
W/System.err: java.io.IOException: unable to create directory: /tokens
W/System.err: at com.google.api.client.util.store.FileDataStoreFactory.<init>(FileDataStoreFactory.java:61)
W/System.err: at com.kazumi.management.ConnectToDatabase.getCredentials(ConnectToDatabase.java:70)
根据报错应该是这一行:
GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder(
HTTP_TRANSPORT, JSON_FACTORY, clientSecrets, SCOPES)
.setDataStoreFactory(new FileDataStoreFactory(new java.io.File(TOKENS_DIRECTORY_PATH)))
.setAccessType("offline")
.build();
所以原因是,这个函数无法在我的虚拟 android 设备上创建目录。但为什么会这样呢?是否存在解决方法?
【问题讨论】:
-
使用专用的Android library 可能会带来更好的运气。
-
@Phix 你是否知道访问和阅读谷歌表格的教程/说明指南的链接?
-
我在发帖之前并没有深入研究它,但它确实说在 gradle deps 之后 Java 指南将起作用。我猜 Android 创建文件的方式与常规的 ol' java 不同,所以我建议用 Android 版本替换有问题的代码。在这种情况下,您可以使用 Android 提供的任何东西,而不是
new java.io.File...(我已经有一段时间没有使用它了)
标签: java android android-studio google-sheets google-sheets-api