2017-04-14 43 views
0

我正在使用YouTube數據API從我的頻道獲取數據的應用程序。我已經完成了所有的設置,如在谷歌控制檯上的鍵和API,YouTube和應用程序在調試階段工作正常。但是,當我生成我的apk發佈階段我的應用程序沒有按預期工作。對於針對數據的YouTube數據API的調用,它會產生以下錯誤。400發佈版本apk上的錯誤請求

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造成的,同時收縮資源或 ,同時產生relase apk。請幫我找到錯誤。

+0

您是否更新了憑據?嘗試按照文檔 - [註冊您的應用程序](https://developers.google.com/youtube/android/player/register)更新您的發行版APK的憑據。希望這可以幫助。 –

回答

0

我認爲這是Proguard的問題。爲了解決這個問題,補充一點:

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

而且問題應該得到解決。