title: exception 'android.graphics.drawable.RippleDrawable', referenced from method android.support.v7.widget.AppCompatImageHelper.hasOverlappingRendering
body: <p>I am designing an android app. My app is working fine on above 21 API but when I started to test it on API 18 it unfortunately stopping. At the starting of Login Activity app is stopping .When I input in the Edittext app unfortunately stops.
  Below is my code.</p>
  
  <pre><code>    package com.example.kiran.kioskapp.activity;
  
  import android.app.ProgressDialog;
  import android.content.Intent;
  import android.support.design.widget.Snackbar;
  import android.support.v7.app.AppCompatActivity;
  import android.os.Bundle;
  import android.support.v7.widget.Toolbar;
  import android.util.Log;
  import android.view.Menu;
  import android.view.MenuInflater;
  import android.view.View;
  import android.view.WindowManager;
  import android.widget.Button;
  import android.widget.EditText;
  import android.widget.ImageView;
  import android.widget.TextView;
  
  import com.example.kiran.kioskapp.MyApplication;
  import com.example.kiran.kioskapp.R;
  
  import com.example.kiran.kioskapp.helper.Helper;
  import com.example.kiran.kioskapp.helper.SessionManager;
  import com.example.kiran.kioskapp.utils.APIUtils;
  import com.example.kiran.kioskapp.data.remote.Webservice;
  import com.example.kiran.kioskapp.service.ConnectivityReceiver;
  
  import retrofit2.Call;
  import retrofit2.Callback;
  import retrofit2.Response;
  
  public class LoginActivity extends AppCompatActivity implements ConnectivityReceiver.ConnectivityReceiverListener {
  
      Button ibtnLogin;
      EditText iedtClientId, iedtDeviceCode;
      String strDeviceCode;
      long clientId;
      Helper helper;
      Webservice webservice;
      SessionManager sessionManager;
      Toolbar toolbar;
      ImageView imageView;
  
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
          setContentView(R.layout.activity_main);
          initToolbar();
          checkConnection();
          sessionManager = new SessionManager(LoginActivity.this);
          helper = new Helper(LoginActivity.this);
          webservice = APIUtils.getWebsevice(Webservice.class);
          //if already logged in then edirect to HomeActivity
          Log.d("TAG", "session " + sessionManager.isLoggedIn());
          iedtClientId = (EditText) findViewById(R.id.edt_clientid);
          iedtDeviceCode = (EditText) findViewById(R.id.edt_device_code);
          ibtnLogin = (Button) findViewById(R.id.btn_login);
  
          ibtnLogin.setOnClickListener(new View.OnClickListener() {
              @Override
              public void onClick(View v) {
  
                  if (checkValidation()) {
                      clientId = Long.parseLong(iedtClientId.getText().toString().trim());
                      strDeviceCode = iedtDeviceCode.getText().toString().trim();
                      strDeviceCode = strDeviceCode.toUpperCase();
                      webservice.isAuthenticate(clientId, strDeviceCode).enqueue(new Callback&lt;Boolean&gt;() {
                          @Override
                          public void onResponse(Call&lt;Boolean&gt; call, Response&lt;Boolean&gt; response) {
  
                              if (response.code() == 200) {
                                  ProgressDialog dialog = ProgressDialog.show(LoginActivity.this, getString(R.string.progess_title), getString(R.string.progess_message), false, false);
                                  dialog.show();
                                  sessionManager.createLoginSession(clientId, strDeviceCode);
                                  Intent intent = new Intent(LoginActivity.this, HomeActivity.class);
                                  startActivity(intent);
                                  finish();
                              } else
                                  Helper.showCustomToast(LoginActivity.this, getString(R.string.wrong_credentials));
                          }
  
                          @Override
                          public void onFailure(Call&lt;Boolean&gt; call, Throwable t) {
                              Helper.showCustomToast(LoginActivity.this, getString(R.string.network_error));
                          }
                      });
  
                  }//if checkvalidation()
              }
  
          });
      }
  
  
      public boolean checkValidation() {
  
          boolean valid = true;
          if (iedtClientId.getText().toString().trim().isEmpty()) {
              iedtClientId.setError(getString(R.string.client_error));
              valid = false;
          } else {
              iedtClientId.setError(null);
          }
  
          if (iedtDeviceCode.getText().toString().trim().isEmpty()) {
              iedtDeviceCode.setError(getString(R.string.device_error));
              valid = false;
          } else {
              iedtDeviceCode.setError(null);
          }
          return valid;
      }
      private void initToolbar() {
          toolbar = (Toolbar) findViewById(R.id.toolbar);
          setSupportActionBar(toolbar);
          getSupportActionBar().setTitle("");//reset default title
          imageView = (ImageView) toolbar.findViewById(R.id.img_refresh);
          imageView.setOnClickListener(new View.OnClickListener() {
              @Override
              public void onClick(View v) {
  
  
              }
          });
      }
  
      private void checkConnection() {
          boolean isConnected = ConnectivityReceiver.isConnected();
          showSnackBar(isConnected);
          if (isConnected == true) {
              String recName = ConnectivityReceiver.getConnectedWifiInfo();
              int level = ConnectivityReceiver.getLevel();
              Log.d("TAG", recName + " " + level);
          }
  
      }
  
      @Override
      protected void onResume() {
          super.onResume();
          MyApplication.getInstance().setConnectivityListener(this);
  
      }
  
  
      void showSnackBar(boolean value) {
          String message;
          if (value == true)
              message = "Good! Connected to Internet";
          else
              message = "Sorry! Not connected to internet";
          View mView = findViewById(android.R.id.content);
          Snackbar.make(mView, message, Snackbar.LENGTH_LONG)
                  .show();
      }
  
      @Override
      public void onNetworkConnectionChanged(boolean isConnected) {
          showSnackBar(isConnected);
      }
  
  
  }
  </code></pre>
  
  <p>and it shown various exceptions.</p>
  
  <pre><code> Could not find class 'android.graphics.drawable.RippleDrawable', referenced from method android.support.v7.widget.AppCompatImageHelper.hasOverlappingRendering
  10-31 00:18:57.991 2105-2105/com.example.kiran.kioskapp E/InputEventReceiver: Exception dispatching input event.
  10-31 00:18:57.991 2105-2105/com.example.kiran.kioskapp E/MessageQueue-JNI: Exception in MessageQueue callback: handleReceiveCallback
  10-31 00:18:57.991 2105-2105/com.example.kiran.kioskapp E/MessageQueue-JNI: java.lang.IndexOutOfBoundsException
                                                                                  at android.graphics.Paint.getTextRunAdvances(Paint.java:1777)
                                                                                  at android.text.TextLine.handleText(TextLine.java:747)
                                                                                  at android.text.TextLine.handleRun(TextLine.java:898)
                                                                                  at android.text.TextLine.measureRun(TextLine.java:414)
                                                                                  at android.text.TextLine.measure(TextLine.java:293)
                                                                                  at android.text.Layout.getHorizontal(Layout.java:852)
                                                                                  at android.text.Layout.getHorizontal(Layout.java:830)
                                                                                  at android.text.Layout.getPrimaryHorizontal(Layout.java:805)
                                                                                  at android.text.Layout.getPrimaryHorizontal(Layout.java:795)
                                                                                  at android.text.Layout.getOffsetForHorizontal(Layout.java:1116)
                                                                                  at android.widget.TextView.getOffsetAtCoordinate(TextView.java:8520)
                                                                                  at android.widget.TextView.getOffsetForPosition(TextView.java:8496)
                                                                                  at android.widget.Editor$SelectionModifierCursorController.onTouchEvent(Editor.java:3597)
                                                                                  at android.widget.Editor.onTouchEvent(Editor.java:1017)
                                                                                  at android.widget.TextView.onTouchEvent(TextView.java:7601)
                                                                                  at android.view.View.dispatchTouchEvent(View.java:7384)
                                                                                  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2211)
                                                                                  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1912)
                                                                                  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2211)
                                                                                  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1912)
                                                                                  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2211)
                                                                                  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1912)
                                                                                  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2211)
                                                                                  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1912)
                                                                                  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2211)
                                                                                  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1912)
                                                                                  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2211)
                                                                                  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1912)
                                                                                  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2211)
                                                                                  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1912)
                                                                                  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2211)
                                                                                  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1912)
                                                                                  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2211)
                                                                                  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1912)
                                                                                  at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1966)
                                                                                  at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1418)
                                                                                  at android.app.Activity.dispatchTouchEvent(Activity.java:2424)
                                                                                  at android.support.v7.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:71)
                                                                                  at android.support.v7.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:71)
                                                                                  at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1914)
                                                                                  at android.view.View.dispatchPointerEvent(View.java:7564)
                                                                                  at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:3883)
                                                                                  at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:3778)
                                                                                  at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3379)
                                                                                  at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3429)
                                                                                  at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3398)
                                                                                  at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3483)
                                                                                  at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3406)
                                                                                  at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3540)
                                                                                  at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3379)
                                                                                  at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3429)
                                                                                  at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3398)
                                                                                  at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3406)
                                                                                  at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3379)
                                                                                  at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:5419)
                                                                                  at android.view.ViewRootI
  10-31 00:18:58.001 2105-2105/com.example.kiran.kioskapp E/AndroidRuntime: FATAL EXCEPTION: main
                                                                            java.lang.IndexOutOfBoundsException
                                                                                at android.graphics.Paint.getTextRunAdvances(Paint.java:1777)
                                                                                at android.text.TextLine.handleText(TextLine.java:747)
                                                                                at android.text.TextLine.handleRun(TextLine.java:898)
                                                                                at android.text.TextLine.measureRun(TextLine.java:414)
                                                                                at android.text.TextLine.measure(TextLine.java:293)
                                                                                at android.text.Layout.getHorizontal(Layout.java:852)
                                                                                at android.text.Layout.getHorizontal(Layout.java:830)
                                                                                at android.text.Layout.getPrimaryHorizontal(Layout.java:805)
                                                                                at android.text.Layout.getPrimaryHorizontal(Layout.java:795)
                                                                                at android.text.Layout.getOffsetForHorizontal(Layout.java:1116)
                                                                                at android.widget.TextView.getOffsetAtCoordinate(TextView.java:8520)
                                                                                at android.widget.TextView.getOffsetForPosition(TextView.java:8496)
                                                                                at android.widget.Editor$SelectionModifierCursorController.onTouchEvent(Editor.java:3597)
                                                                                at android.widget.Editor.onTouchEvent(Editor.java:1017)
                                                                                at android.widget.TextView.onTouchEvent(TextView.java:7601)
                                                                                at android.view.View.dispatchTouchEvent(View.java:7384)
                                                                                at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2211)
                                                                                at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1912)
                                                                                at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2211)
                                                                                at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1912)
                                                                                at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2211)
                                                                                at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1912)
                                                                                at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2211)
                                                                                at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1912)
                                                                                at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2211)
                                                                                at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1912)
                                                                                at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2211)
                                                                                at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1912)
                                                                                at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2211)
                                                                                at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1912)
                                                                                at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2211)
                                                                                at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1912)
                                                                                at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2211)
                                                                                at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1912)
                                                                                at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1966)
                                                                                at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1418)
                                                                                at android.app.Activity.dispatchTouchEvent(Activity.java:2424)
                                                                                at android.support.v7.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:71)
                                                                                at android.support.v7.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:71)
                                                                                at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1914)
                                                                                at android.view.View.dispatchPointerEvent(View.java:7564)
                                                                                at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:3883)
                                                                                at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:3778)
                                                                                at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3379)
                                                                                at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3429)
                                                                                at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3398)
                                                                                at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3483)
                                                                                at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3406)
                                                                                at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3540)
                                                                                at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3379)
                                                                                at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3429)
                                                                                at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3398)
                                                                                at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3406)
                                                                                at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3379)
                                                                                at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:5419)
                                                                              at an
  
                                                                            [ 10-31 00:18:58.011  1442: 1567 D/         ]
                                                                            HostConnection::get() New Host Connection established 0xb7d793f0, tid 1567
  </code></pre>
  
  <p>..</p>
  
  <p>Error is exactly where I am not getting . Please help.</p>