Android java.lang.ClassCastException:com.google.gson.internal.LinkedTreeMap无法强制转换到com.google.api.services.youtube.youtube$Videos$List
LogCat:Android java.lang.ClassCastException:com.google.gson.internal.LinkedTreeMap无法强制转换到com.google.api.services.youtube.youtube$Videos$List,android,youtube-api,retrofit2,rx-android,Android,Youtube Api,Retrofit2,Rx Android,LogCat: java.lang.ClassCastException: com.google.gson.internal.LinkedTreeMap cannot be cast to com.google.api.services.youtube.YouTube$Videos$List 异常:在下面的代码中调用onError IService mService = application.getIService(Constants.mYoutubeUrl); subscripti
java.lang.ClassCastException: com.google.gson.internal.LinkedTreeMap cannot be cast to com.google.api.services.youtube.YouTube$Videos$List
异常:在下面的代码中调用onError
IService mService = application.getIService(Constants.mYoutubeUrl);
subscription = mService.getYoutubeVideos(Constants.mYoutubeKey ,Constants.mYoutubeChannelId )
.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(application.defaultSubscribeScheduler())
.subscribe(new Observer<YouTube.Videos.List>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
videoMvpView.showMessage(R.string.probleme_connection);
}
@Override
public void onNext(YouTube.Videos.List videos) {
videoMvpView.showVideos(videos);
videoMvpView.showSelectedVideo(((Video)videos.get(0)).getSnippet().getTitle());
}
});
IService mService=application.getIService(Constants.mYoutubeUrl);
订阅=mService.getYoutubeVideos(Constants.mYoutubeKey,Constants.mYoutubeChannelId)
.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(application.defaultSubscribeScheduler())
.订阅(新观察员){
@凌驾
未完成的公共无效(){
}
@凌驾
公共无效申报人(可丢弃的e){
videoMvpView.showMessage(R.string.probleme\u连接);
}
@凌驾
public void onNext(YouTube.Videos.List视频){
videoMvpView.showVideos(视频);
videoMvpView.showSelectedVideo(((Video)videos.get(0)).getSnippet().getTitle());
}
});
IService.java
public interface IService {
@GET("/youtube/v3/search?part=snippet,id&order=date&maxResults=20")
Observable<YouTube.Videos.List> getYoutubeVideos(@Query("key") String key, @Query("channelId") String channelId);
class Factory {
public static IService create(String baseUrl) {
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(baseUrl)
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.build();
return retrofit.create(IService.class);
}
}
公共接口iSeries设备{
@GET(“/youtube/v3/search?part=snippet,id&order=date&maxResults=20”)
可观察的getYoutubeVideos(@Query(“key”)字符串键,@Query(“channelId”)字符串channelId);
阶级工厂{
公共静态IService创建(字符串baseUrl){
改装改装=新改装.Builder()
.baseUrl(baseUrl)
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.build();
返回改装.create(IService.class);
}
}
}是否必须使用YouTube.Videos.List类,如果不是,请使用原始字符串响应将其转换为pojo,然后尝试使用它,这可能会有所帮助,如果必须使用,则需要检查YouTube.Videos.List类的结构,如果您可以提供原始响应,则可能有助于解决此问题您是否必须使用YouTube.Videos.List类,如果不是,请使用take原始字符串响应将其转换为pojo,然后尝试使用它,这可能会有帮助,如果必须使用,则需要检查YouTube.Videos.List的结构,如果可以提供原始响应,则可能有助于解决问题