Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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.

like image 682
baldraider Avatar asked Oct 27 '25 05:10

baldraider


1 Answers

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

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

And the problem should be solved.

like image 157
sky Avatar answered Oct 30 '25 14:10

sky



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!