Skip to content

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

@sriharshachilakapati

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.

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