【发布时间】:2019-06-08 22:14:45
【问题描述】:
我想在 Android 应用中实现 Google Dev API。 我正在尝试使用 Google 为 Java 提供的示例,这里: https://github.com/googlesamples/android-play-publisher-api/tree/master/v3/java/src/com/google/play/developerapi/samples
我只是将它们修改为使用 Android 的 AssetManager 提供 client-secret.json 文件的 InputStream。
然而,由于 java.awt 依赖项,这仍然与 Android 不兼容,如下面的错误所示:
java.lang.RuntimeException: An error occurred while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:354)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:383)
at java.util.concurrent.FutureTask.setException(FutureTask.java:252)
at java.util.concurrent.FutureTask.run(FutureTask.java:271)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:245)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:764)
Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Ljava/awt/Desktop;
at com.google.api.client.extensions.java6.auth.oauth2.AuthorizationCodeInstalledApp.browse(AuthorizationCodeInstalledApp.java:129)
at com.google.api.client.extensions.java6.auth.oauth2.AuthorizationCodeInstalledApp.onAuthorization(AuthorizationCodeInstalledApp.java:113)
at com.google.api.client.extensions.java6.auth.oauth2.AuthorizationCodeInstalledApp.authorize(AuthorizationCodeInstalledApp.java:81)
at net.myapp.AndroidPublisherHelper.authorizeWithInstalledApplication(AndroidPublisherHelper.java:140)
作为记录,第 140 行附近的代码是:
return new AuthorizationCodeInstalledApp(
flow, new LocalServerReceiver()).authorize(INST_APP_USER_ID);
其中涉及到依赖:
import com.google.api.client.extensions.java6.auth.oauth2.AuthorizationCodeInstalledApp;
import com.google.api.client.extensions.jetty.auth.oauth2.LocalServerReceiver;
如何转换这些示例以使其与 Android 兼容。我不知道它们是如何工作的,所以我只是将其复制/粘贴到应该建立连接并列出我的开发 apk 的 AsyncTask 中。
【问题讨论】:
标签: java android google-play-developer-api