android - 发布版本 apk 上的 400 错误请求

标签 android youtube google-api youtube-api youtube-data-api

我正在开发一个应用程序,该应用程序使用 youtube data api 从我的 channel 获取数据。我已经在 google console 上为 youtube 完成了所有设置,例如 key 和 api,并且应用程序在调试阶段运行良好。但是,当我生成用于发布阶段的 apk 时,我的应用程序没有按预期工作。对于调用 youtube data api 获取数据,它会给出以下错误。

com.google.a.a.b.a.b: 400 Bad Request
W/System.err: {
"errors": [
  {
   "domain": "global",
   "reason": "required",
  "message": "Required parameter: part",
   "locationType": "parameter",
   "location": "part"
 }
],
"code": 400,
"message": "Required parameter: part"
}

W/System.err:     at com.google.a.a.b.c.a.b.b(Unknown Source)
W/System.err:     at com.google.a.a.b.c.a.b.a(Unknown Source)
W/System.err:     at com.google.a.a.b.c.b$1.a(Unknown Source)
W/System.err:     at com.google.a.a.c.o.o(Unknown Source)
W/System.err:     at com.google.a.a.b.c.b.b(Unknown Source)
W/System.err:     at com.beebom.app.beebom.videos.l$c.a(Unknown Source)
W/System.err:     at 
com.beebom.app.beebom.videos.l$c.doInBackground(Unknown Source)
W/System.err:     at android.os.AsyncTask$2.call(AsyncTask.java:305)
W/System.err:     at jav a.util.concurrent.FutureTask.run(FutureTask.java:237)
W/System.err:     at 
android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243)
W/System.err:     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
W/System.err:     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
W/System.err:     at java.lang.Thread.run(Thread.java:761)

我提取数据的代码在这里:

mYouTubeDataApi = new YouTube.Builder(AndroidHttp.newCompatibleTransport(),new  GsonFactory(),null)
    .setApplicationName("app").build();

searchlistResponse = mYouTubeDataApi.search().list("snippet")
    .setChannelId(Constants.CHANNELID).setFields("items(id/videoId),nextPageToken")
    .setMaxResults((long) results)
    .setKey(Constants.YOUTUBEDEVELOPERKEY)
    .setType("video").setOrder("date").execute();

错误消息指出缺少某些部分参数,但这在调试阶段甚至在浏览器中都能完美运行 但还没有进入发布阶段。我错过了什么或做错了什么。或者是由于gradle同时收缩资源造成的或者 生成发布 apk 时发生的事情。请帮我找到错误。

最佳答案

我认为这是 Proguard 的问题。要修复它,请添加以下内容:

-keep class com.google.api.** { *; }

问题应该得到解决。

关于android - 发布版本 apk 上的 400 错误请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43408346/

相关文章:

asp.net - Z-Index属性不适用于youtube视频

android - Android和Vitamio支持YouTube和Vimeo视频

oauth-2.0 - 从 Python 在 Google Colab 中生成 Google API access_token

android - 使用 'bind' 和 'app' 命名空间设置自定义属性与 Android DB 之间的区别?

android - 使用 ACRA 时清空崩溃文件

android - Android 上 C/C++ 内存使用指南

video - 使用 YouTube 播放器播放本地视频

google-app-engine - Google Drive API - 太慢了。

java - 如何使用 Google Fit API 按需获取 SmartBand2 的实时心率?

android - 检查android的sdcard上是否存在目录