Exception error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
means that result of
InputStream in = mContext.getResources().openRawResource(R.raw.publicrsakey);
byte[] pubKeyBytes = org.apache.commons.io.IOUtils.toByteArray(in);
doesn't represent ASN.1 DER encoded message. Print it somewhere as hex to verify what is an exact problem
Log.v("HEX", org.apache.commons.codec.binary.Hex.encodeHexString(pubKeyBytes);