title: Android Error While using ExifInterface
body: <p>I am trying to check the orientation of bitmap and flip it if there is a need, but I have error while applying the code. Here is my code while i am trying to flipp the image using ExifInterface:</p>
  
  <pre><code>@RequiresApi(api = Build.VERSION_CODES.N)
      public void flipping(Bitmap b)
      {
          ByteArrayOutputStream bos = new ByteArrayOutputStream();
          b.compress(Bitmap.CompressFormat.JPEG,100, bos);
          byte[] bitmapdata = bos.toByteArray();
          ByteArrayInputStream bs = new ByteArrayInputStream(bitmapdata);
          try {
  
              ExifInterface exif = new ExifInterface(bs);
              int orientation = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION,
                      ExifInterface.ORIENTATION_UNDEFINED);
              switch(orientation) {
  
                  case ExifInterface.ORIENTATION_ROTATE_90:
                      rotateImage(b, 90);
                      break;
  
                  case ExifInterface.ORIENTATION_ROTATE_180:
                      rotateImage(b, 180);
                      break;
  
                  case ExifInterface.ORIENTATION_ROTATE_270:
                      rotateImage(b, 270);
                      break;
  
                  case ExifInterface.ORIENTATION_NORMAL:
  
                  default:
                      break;
              }
  
              encoding();
          } catch (IOException e) {
              e.printStackTrace();
          }
      }
      public static Bitmap rotateImage(Bitmap source, float angle) {
          Matrix matrix = new Matrix();
          matrix.postRotate(angle);
          return Bitmap.createBitmap(source, 0, 0, source.getWidth(), source.getHeight(),
                  matrix, true);
      }
  </code></pre>
  
  <p>And here is the error:</p>
  
  <pre><code>java.lang.NoSuchMethodError: No direct method &lt;init&gt;(Ljava/io/InputStream;)V in class Landroid/media/ExifInterface; or its super classes (declaration of 'android.media.ExifInterface' appears in /system/framework/framework.jar)
                                                                         at com.sara.image_test.MainActivity.flipping(MainActivity.java:181)
                                                                         at com.sara.image_test.MainActivity.onActivityResult(MainActivity.java:66)
                                                                         at android.app.Activity.dispatchActivityResult(Activity.java:7165)
                                                                         at android.app.ActivityThread.deliverResults(ActivityThread.java:4994)
                                                                         at android.app.ActivityThread.handleSendResult(ActivityThread.java:5041)
                                                                         at android.app.ActivityThread.access$1600(ActivityThread.java:229)
                                                                         at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1875)
                                                                         at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                         at android.os.Looper.loop(Looper.java:148)
                                                                         at android.app.ActivityThread.main(ActivityThread.java:7325)
                                                                         at java.lang.reflect.Method.invoke(Native Method)
                                                                         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
                                                                         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
  </code></pre>