Open sumeet-chaayos opened 7 years ago
Retrofit's stack trace mentions that the LoganSquareConverterFactory
was successfully found and queried, but it couldn't handle your class. Could you share your module's build.gradle
file as well? It seems like the annotation processor doesn't generate a JsonMapper
for your class, and it fails trying to look it up from Retrofit. This leads me to believe that the processor is applied incorrectly. Also, can you check your generated sources (build/generated/...
) for a class named UnitBasicDetail$$JsonMapper
?
@aurae You are right, annotation processsor module is not added to gradle ,where my model classes are defined ,that's why its unable to generate JsonMapper .After adding it in that module gradle it works. But i have a doubt :- Earlier my all java classes are in a Model named module, which is defined as "java" moduloe in gradle (and it should be like that only as it contains only pure java classes), But just because of need of adding Annotation processor dependency, I have to make it a "Android" module with manifest and all . Although i have added annotation processor in my main android module dependency where this Model module is included , but still it works only when its added on the root module where the class is defined. Can there be any solution to that so that i dont have to make my Model java module with pure java classes only to a android module just because of annotation processor.
You can totally use annotation processing in a pure-Java Gradle module! I used to recommend this plugin to folks for this (not sure about the current state of first-party support in the Java plugin). Apply it to your "models" module, then declare the LoganSquare processor as an apt
dependency to that module. When building, it should generate the JsonMapper
as well - check with a clean build to make sure.
Getting unable to create converter on using retrofit with logansquare as convertor . I have already added the apt and gradle dependency as given on homepage ` Caused by: java.lang.IllegalArgumentException: Unable to create converter for java.util.List
for method LoginService.getUnits
at retrofit2.ServiceMethod$Builder.methodError(ServiceMethod.java:752)
at retrofit2.ServiceMethod$Builder.createResponseConverter(ServiceMethod.java:738)
at retrofit2.ServiceMethod$Builder.build(ServiceMethod.java:169)
at retrofit2.Retrofit.loadServiceMethod(Retrofit.java:170)
at retrofit2.Retrofit$1.invoke(Retrofit.java:147)
at java.lang.reflect.Proxy.invoke(Proxy.java:397)
at $Proxy1.getUnits(Unknown Source)
at com.chaayos.kettle.android.login.AssemblyLoginFragment.populateUnitsList(AssemblyLoginFragment.java:240)
at com.chaayos.kettle.android.login.AssemblyLoginFragment.onCreateView(AssemblyLoginFragment.java:123)
at android.support.v4.app.Fragment.performCreateView(Fragment.java:1974)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1067)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1252)
at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:742)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1617)
at android.support.v4.app.FragmentController.execPendingActions(FragmentController.java:339)
at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:601)
at com.chaayos.kettle.android.assembly.AssemblyScreenActivity.onStart(AssemblyScreenActivity.java:214)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1244)
at android.app.Activity.performStart(Activity.java:6108)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2491)
... 10 more
Caused by: java.lang.IllegalArgumentException: Could not locate ResponseBody converter for java.util.List.
Tried:
Below is the class ` @JsonObject(fieldDetectionPolicy = JsonObject.FieldDetectionPolicy.NONPRIVATE_FIELDS_AND_ACCESSORS) public class UnitBasicDetail {
}`