I am analyzing a dex file and to ease with reverse engineering, I converted it a jar so it could be decompiled. In the file android/support/v17/leanback/media/MediaControllerGlue.class, the following import appears:

import android.support.v4.media.session.MediaControllerCompat;

However, this class is not defined. In fact, there is no android/support/v4/media package in the file.

To confirm, this, I listed the referenced type in the type_ids section of the dex file, and sure enough, the following type is present: android/support/v4/media/MediaControllerCompat. However, when I then iterate over all entries in the class_defs section, this class is nowhere to be found.

I am new to Android (this is actually an Amazon Firestick APK) development/reverse engineering so I'm not sure how this is possible. Is there some way of defining classes in a separate library that would exist outside of the APK?

  • Did you check whether there are multiple dex files? What tool did you use to do the jar conversion?
    – Antimony
    Jul 25, 2019 at 14:44
  • 1
    There is only one dex file. I used dex2jar but the problem doesn't lie in the jar conversion since I inspected the contents of the dex file directly. Jul 25, 2019 at 15:40

1 Answer 1


As it turns out, this class (and other not defined in the DEX file) are part of the standard Android library. Therefore, I suppose they're linked from a shared object at runtime.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.