Я хочу использовать кэш при модернизации, но получаю ошибку из-за getCacheDir();
Это мой код:
public class ServiceGenerator extends AppCompatActivity {
public static final String API_BASE_URL = "https://myapiurl.com/";
private static HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
private static Interceptor logging = interceptor.setLevel(HttpLoggingInterceptor.Level.BASIC);
static File dir = getCacheDir();
static Cache cache = new Cache(dir,10*1024*1024);
private static OkHttpClient httpClient = new OkHttpClient.Builder()
.cache(cache)
.addInterceptor(logging)
.build();
private static Gson gson = new GsonBuilder()
.setLenient()
.create();
private static Retrofit.Builder builder =
new Retrofit.Builder()
.baseUrl(API_BASE_URL)
.addConverterFactory(GsonConverterFactory.create(gson));
public static <S> S createService(Class<S> serviceClass) {
Retrofit retrofit = builder.client(httpClient).build();
return retrofit.create(serviceClass);
}
}
Ошибка "НеНа статический метод 'getCacheDir ()' нельзя ссылаться из статического контекста "
Поэтому я удалил все статические переменные и получил еще одну ошибку о createService()
, что он не может быть нестатичным.
Как я могу решить эту проблему?