Skip to content

Cannot explicitly call default method in an interface on Android #102

Description

@sriharshachilakapati

I have a default method in an interface, and I tried to call it explicitly from the same method in the implementing class and it is generating an exception:

@Override
public void glDrawArrays(int primitive, int offset, int vertexCount)
{
    IGraphicsDevice.super.glDrawArrays(primitive, offset, vertexCount);
    GLES30.glDrawArrays(primitive, offset, vertexCount);
}

This is the code that I'm having and it works fine under standard Java 8. But when doing the same code (back ported to Java 1.6 on android) generates the following error:

Uncaught translation error: com.android.dx.cf.code.SimException: com.android.dx.rop.cst.CstInterfaceMethodRef cannot be cast to com.android.dx.rop.cst.CstMethodRef

I'm using this with latest gradle-retrolambda and retrolambda. I'm not even using Progaurd, so I'm not sure why this is being caused. All the original default method does is that it increments a static variable from a final inner class of the same interface.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions