Мы используем Retrofit 2 и сталкиваемся с этой исключительной ситуацией в версиях Android 4.x и работаем должным образом в других версиях Android. Добавлен код ниже
Caused by java.lang.NoClassDefFoundError: javax/annotation/Nullable
at java.lang.reflect.Field.getAnnotation(Field.java)
at java.lang.reflect.Field.getAnnotation(Field.java:212)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getFieldNames(ReflectiveTypeAdapterFactory.java:72)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:159)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:100)
at com.google.gson.Gson.getAdapter(Gson.java:423)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.createBoundField(ReflectiveTypeAdapterFactory.java:115)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:164)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:100)
at com.google.gson.Gson.getAdapter(Gson.java:423)
at retrofit2.converter.gson.GsonConverterFactory.requestBodyConverter(GsonConverterFactory.java:71)
at retrofit2.Retrofit.nextRequestBodyConverter(Retrofit.java:282)
at retrofit2.Retrofit.requestBodyConverter(Retrofit.java:262)
at retrofit2.ServiceMethod$Builder.parseParameterAnnotation(ServiceMethod.java:710)
at retrofit2.ServiceMethod$Builder.parseParameter(ServiceMethod.java:336)
at retrofit2.ServiceMethod$Builder.build(ServiceMethod.java:204)
at retrofit2.Retrofit.loadServiceMethod(Retrofit.java:170)
at retrofit2.Retrofit$1.invoke(Retrofit.java:147)
at $Proxy1.getMagGold(Unknown Source)
at com.amazon.DynamoDBOne.getMagGold(DynamoDBOne.java:82)
at com.task.SyncUserDatas.getUserGoldData(SyncUserDatas.java:330)
at com.task.SyncUserDatas.doInBackground(SyncUserDatas.java:292)
at com.task.SyncUserDatas.doInBackground(SyncUserDatas.java:57)
at android.os.AsyncTask$2.call(AsyncTask.java:287)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
at java.util.concurrent.FutureTask.run(FutureTask.java:137)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
at java.lang.Thread.run(Thread.java:856)
Ниже приведен код
public interface ApiServices{
@POST("getGold")
Call<GetMagGoldResponse> getMagGold(@Header("Authorization") String Authorization, @Body UserId userId);
}
Retrofit retrofit = new Retrofit.Builder()
.addConverterFactory(GsonConverterFactory.create())
.baseUrl(<URL>)
.client(getLogClient())
.build();
ApiServices service = retrofit.create(ApiServices.class);
service.getMagGold(token, userId).execute().body();