我正在开发一个应用程序,该应用程序使用 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/