baldraider
baldraider

Reputation: 1069

400 Bad Request on release version apk

I am working on an application which uses youtube data api for fetching data from my channel. I had done all the setup like keys and api on google console for youtube and app is working fine in debug phase. But when I generate my apk for release phase my application did not working as expected. For the call for youtube data api for data it gives following error.

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)

My code for extracting data is here :

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();

Error message saying that some part parameter is missing but this working perfectly in debug phase and even in browser but not in release phase. What am I missing or doing wrong. Or is it caused due to gradle while shrinking resources or something while generating relase apk. Please help me to find the bug.

Upvotes: 4

Views: 1064

Answers (1)

sky
sky

Reputation: 71

I think it's a problem with Proguard. To fix it, add this:

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

And the problem should be solved.

Upvotes: 7

Related Questions