title: Form-encoded method must contain at least one @Field
body: <p><strong>I am unable to understand what is the issue here :
  is it library issue?</strong></p>
  
  <blockquote>
    <p>java.lang.IllegalArgumentException: Form-encoded method must contain
    at least one @Field.
            for method ApiInterface.hitCheckVersionApi$79c79d47
            at retrofit2.ServiceMethod$Builder.methodError(ServiceMethod.java:720)
            at retrofit2.ServiceMethod$Builder.build(ServiceMethod.java:11711)
            at retrofit2.Retrofit.loadServiceMethod(Retrofit.java:166)
            at retrofit2.Retrofit$1.invoke(Retrofit.java:145)
            at java.lang.reflect.Proxy.invoke(Proxy.java:1006)
            at $Proxy3.hitCheckVersionApi$79c79d47(Unknown Source)
            at com.shopoholicbuddy.activities.SplashActivity.onCreate(SplashActivity.java:1058)</p>
  </blockquote>
  
  <p><strong>Here is code sample:</strong></p>
  
  <pre><code>  @FormUrlEncoded
      @POST("checkversion")
      Call&lt;ResponseBody&gt; hitCheckVersionApi(@FieldMap HashMap&lt;String, String&gt; map);
  </code></pre>
  
  <p><strong>And the implementation code is:</strong></p>
  
  <pre><code> private void checkForceUpdateAPI() {
          if (AppUtils.getInstance().isInternetAvailable(this)) {
              final HashMap&lt;String, String&gt; params = new HashMap&lt;&gt;();
              params.put(Constants.NetworkConstant.PARAM_VERSION_NAME, getAppVersion(this));
              params.put(Constants.NetworkConstant.PARAM_PLATFORM, "1");
              params.put(Constants.NetworkConstant.PARAM_APP_TYPE, "2");
              ApiInterface apiInterface = RestApi.createService(this, ApiInterface.class);
              Call&lt;ResponseBody&gt; call = apiInterface.hitCheckVersionApi(params);
              ApiCall.getInstance().hitService(this, call, new NetworkListener() {
                  @Override
                  public void onSuccess(int responseCode, String response, int requestCode) {
                      try {
                          VersionUpdateResponse bean = new Gson().fromJson(response, VersionUpdateResponse.class);
                          if (bean.getCode() == 310) {
                              if (bean.getResult().getVersionName() != null &amp;&amp; Double.parseDouble(bean.getResult().getVersionName())&lt;=(Double.parseDouble(getAppVersion(SplashActivity.this)))) {
                                  showSplashScreen();
                              } else {
                                  AlertDialog.Builder builder = new AlertDialog.Builder(SplashActivity.this, R.style.DatePickerTheme);
                                  builder.setTitle(getString(R.string.new_version_available));
                                  builder.setMessage(getString(R.string.upgrade_to_new_version));
                                  builder.setPositiveButton(getString(R.string.update), (dialogInterface, i) -&gt; redirectStore("https://play.google.com/store/apps/details?id=com.shopoholic"));
                                  if (bean.getResult().getUpdateType() != null &amp;&amp; bean.getResult().getUpdateType().equals("1")) {
                                      builder.setNegativeButton(getString(R.string.no_thanks), (dialogInterface, i) -&gt; showSplashScreen());
                                  }
                                  builder.setCancelable(false);
                                  builder.show();
                              }
                          } else {
                              showSplashScreen();
                          }
                      } catch (Exception e) {
                          e.printStackTrace();
                          showSplashScreen();
                      }
  
                  }
  </code></pre>