Bit late to the party but this could help:
private const val ALGORITHM = "RSA"
private const val CIPHER = "RSA/ECB/OAEPWithSHA-256AndMGF1Padding"
private const val SHA_256 = "SHA-256"
private const val MGF1 = "MGF1"
private const val PUBLIC_KEY_RSA_PKCS1_OAEP_PADDING = "FpMUwRxHsWFXlnAE1iSFC4q3d0bI...." // your public key
val keyBytes: ByteArray = Base64.decode(PUBLIC_KEY_RSA_PKCS1_OAEP_PADDING.replace("\n", "").replace("\r", ""), Base64.NO_WRAP)
val keyFactory = KeyFactory.getInstance(ALGORITHM)
val publicKeySpec = X509EncodedKeySpec(keyBytes)
val publicKey = keyFactory.generatePublic(publicKeySpec)
val cipher = Cipher.getInstance(CIPHER)
val oaepParams = OAEPParameterSpec(SHA_256, MGF1, MGF1ParameterSpec.SHA256, PSource.PSpecified.DEFAULT)
cipher.init(Cipher.ENCRYPT_MODE, publicKey, oaepParams)
val encryptedData = cipher.doFinal(dataToEncrypt.toByteArray(Charsets.UTF_8))
val encryptedStringInUtf8 = Base64.encode(encryptedData, Base64.NO_WRAP).toUtf8String()
utf8 helper method:
fun ByteArray.toUtf8String() = toString(UTF_8)