question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

java.lang.IllegalArgumentException: Unable to create converter for

See original GitHub issue

i 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:closed
  • Created 4 years ago
  • Comments:6

github_iconTop GitHub Comments

1reaction
CarryHekangkaicommented, Aug 6, 2022

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.

0reactions
Marcono1234commented, Aug 6, 2022

In case you are still experiencing this with the latest Gson version, could you please provide a minimal, reproducible example?

Read more comments on GitHub >

github_iconTop 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 >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found