java.lang.IllegalArgumentException: Unable to create converter for
See original GitHub issuei am using gson+rxjava2+retrofit2 in my android project. i am getting following error:
java.lang.NoSuchMethodError: com.google.gson.Gson.newJsonReader
AND:
java.lang.IllegalArgumentException: Unable to create converter for
tv.mchang.data.api.Result<tv.mchang.data.api.bean.main.ColumnInfo>
Here are the details:
07-17 17:32:27.968 E/MctvApp (21795): uncaughtException:
07-17 17:32:27.968 E/MctvApp (21795): java.lang.NoSuchMethodError: com.google.gson.Gson.newJsonReader
07-17 17:32:27.968 E/MctvApp (21795): at retrofit2.converter.gson.GsonResponseBodyConverter.convert(GsonResponseBodyConverter.java:37)
07-17 17:32:27.968 E/MctvApp (21795): at retrofit2.converter.gson.GsonResponseBodyConverter.convert(GsonResponseBodyConverter.java:27)
07-17 17:32:27.968 E/MctvApp (21795): at retrofit2.ServiceMethod.toResponse(ServiceMethod.java:122)
07-17 17:32:27.968 E/MctvApp (21795): at retrofit2.OkHttpCall.parseResponse(OkHttpCall.java:217)
07-17 17:32:27.968 E/MctvApp (21795): at retrofit2.OkHttpCall.execute(OkHttpCall.java:180)
07-17 17:32:27.968 E/MctvApp (21795): at retrofit2.adapter.rxjava2.CallExecuteObservable.subscribeActual(CallExecuteObservable.java:42)
07-17 17:32:27.968 E/MctvApp (21795): at io.reactivex.Observable.subscribe(Observable.java:11194)
07-17 17:32:27.968 E/MctvApp (21795): at retrofit2.adapter.rxjava2.BodyObservable.subscribeActual(BodyObservable.java:34)
07-17 17:32:27.968 E/MctvApp (21795): at io.reactivex.Observable.subscribe(Observable.java:11194)
07-17 17:32:27.968 E/MctvApp (21795): at io.reactivex.internal.operators.observable.ObservableFlatMap$MergeObserver.subscribeInner(ObservableFlatMap.java:162)
07-17 17:32:27.968 E/MctvApp (21795): at io.reactivex.internal.operators.observable.ObservableFlatMap$MergeObserver.onNext(ObservableFlatMap.java:139)
07-17 17:32:27.968 E/MctvApp (21795): at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.drainNormal(ObservableObserveOn.java:200)
07-17 17:32:27.968 E/MctvApp (21795): at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.run(ObservableObserveOn.java:252)
07-17 17:32:27.968 E/MctvApp (21795): at io.reactivex.internal.schedulers.ExecutorScheduler$ExecutorWorker$BooleanRunnable.run(ExecutorScheduler.java:261)
07-17 17:32:27.968 E/MctvApp (21795): at io.reactivex.internal.schedulers.ExecutorScheduler$ExecutorWorker.run(ExecutorScheduler.java:226)
07-17 17:32:27.968 E/MctvApp (21795): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
07-17 17:32:27.968 E/MctvApp (21795): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
07-17 17:32:27.968 E/MctvApp (21795): at java.lang.Thread.run(Thread.java:841)
//Error message
java.lang.IllegalArgumentException: Unable to create converter for tv.mchang.data.api.Result<tv.mchang.data.api.bean.main.ColumnInfo>
for method IMainService.getColumnInfo
at retrofit2.ServiceMethod$Builder.methodError(ServiceMethod.java:755)
at retrofit2.ServiceMethod$Builder.createResponseConverter(ServiceMethod.java:741)
at retrofit2.ServiceMethod$Builder.build(ServiceMethod.java:172)
at retrofit2.Retrofit.loadServiceMethod(Retrofit.java:170)
at retrofit2.Retrofit$1.invoke(Retrofit.java:147)
at $Proxy0.getColumnInfo(Native Method)
at tv.mchang.data.api.main.MainAPI.getColumnInfo(MainAPI.java:225)
at tv.mchang.data.repository.ApiResRepo.getMainColumn(ApiResRepo.java:41)
at tv.mchang.main.fragment.BaseFragment.loadData(BaseFragment.java:447)
at tv.mchang.main.fragment.BaseFragment.onActivityCreated(BaseFragment.java:144)
at android.support.v4.app.Fragment.performActivityCreated(Fragment.java:2270)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1442)
at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1750)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1819)
at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:797)
at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2590)
at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2377)
at android.support.v4.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2332)
at android.support.v4.app.FragmentManagerImpl.execSingleAction(FragmentManager.java:2209)
at android.support.v4.app.BackStackRecord.commitNowAllowingStateLoss(BackStackRecord.java:649)
at android.support.v4.app.FragmentStatePagerAdapter.finishUpdate(FragmentStatePagerAdapter.java:167)
at android.support.v4.view.ViewPager.populate(ViewPager.java:1238)
at android.support.v4.view.ViewPager.populate(ViewPager.java:1086)
at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1616)
at android.view.View.measure(View.java:16497)
at android.support.constraint.ConstraintLayout.internalMeasureChildren(ConstraintLayout.java:1210)
at android.support.constraint.ConstraintLayout.onMeasure(ConstraintLayout.java:1550)
at android.view.View.measure(View.java:16497)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
at android.view.View.measure(View.java:16497)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:695)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)
at android.view.View.measure(View.java:16497)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2312)
at android.view.View.measure(View.java:16497)
at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1917)
at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1114)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1296)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1001)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5719)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761)
at android.view.Choreographer.doCallbacks(Choreographer.java:574)
at android.view.Choreographer.doFrame(Choreographer.java:544)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5039)
at java.lang.reflect.Method.invokeNative(Native M
I solved it using the following method:
Gson builder = new GsonBuilder()
.registerTypeAdapter(ColumnInfo.class, new ColumnInfoAdapter())
.create();
return GsonConverterFactory.create(builder);
But there is another problem:
java.lang.IllegalArgumentException: Unable to create converter for tv.mchang.data.api.Result<java.util.List<tv.mchang.data.api.bean.phone.PhoneWorksInfo>>
I think this is a common mistake,I can’t solve every one of them. How can I solve this problem wisely? Currently only in Android4.4 HISIV510. I tried to change the GSON dependent version:2.8.2 to 2.6.2,But it didn’t do anything.
Issue Analytics
- State:
- Created 4 years ago
- Comments:6
Top Results From Across the Web
Unable to create converter for my class in Android Retrofit library
If anyone ever comes across this in the future because you are trying to define your own custom converter factory and are getting...
Read more >HTTP FAILED: java.lang.IllegalArgumentException: Unable to ...
<-- HTTP FAILED: java.lang.IllegalArgumentException: Unable to create converter for class com.signinghub.sdk.models.responses.RMLogin
Read more >Retrofit java.lang.IllegalArgumentException: Unable to create ...
lang.IllegalArgumentException: Unable to create converter for class … Make sure your JSON fields in your api service interface not duplicated.
Read more >Getting java.lang.IllegalArgumentException: Unable to create ...
Hello i am having next problem. I open same topic on StackOverflow but no answer and i am in hurry. In my json...
Read more >Why I get Unable to create converter exception from retrofit?
Finally I found the issue, I made a mistake, because I tried to use suspend fun and retrofit Call at the same time....
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
This problem has been solved because hisiv510 Android launcher has set the dependency of using a lower version, replacing the original version in the App.
In case you are still experiencing this with the latest Gson version, could you please provide a minimal, reproducible example?