how to store sharded RSA Keys in Android Keystore

A valid RSA key (e, d, n) is given whose private exponent d is splitted into m parts using either additive or multiplicative splitting mechanism, resulting in d1, d2, d3.. dm. Each of these parts are taken to generate the partial RSA key (e, di, n) which need to be stored in android keystore. While doing this, it throws error "java.security.KeyStoreException: Failed to store private key".

Is it because the keystore internally checks if it is a valid RSA key or not? Or any other reason? In any case, is there a way these partial keys can be stored in android keystore?

private fun createPrivateKey(context: Context, pkcs8PrivateByte: ByteArray) {
    if (mKeyStore.containsAlias(mKeyAlias)) {
        mKeyStore.deleteEntry(mKeyAlias)
    }
    val factory: KeyFactory = KeyFactory.getInstance("RSA", "SC")
    // public key of the non-distributed private key
    val publicKeySpec = X509EncodedKeySpec(getPublicKeyByte())
    val tmpPublicKey: RSAPublicKey = factory.generatePublic(publicKeySpec) as RSAPublicKey
    // reconstruct private key from the distributed key pem
    val privateKeySpec = PKCS8EncodedKeySpec(pkcs8PrivateByte)
    val tmpPrivateKey: RSAPrivateKey = factory.generatePrivate(privateKeySpec) as RSAPrivateKey
    val rsaKeySpec = RSAPrivateKeySpec(tmpPublicKey.modulus, tmpPrivateKey.privateExponent)
    val distRsaPrivateKey = factory.generatePrivate(rsaKeySpec)
    val cf = CertificateFactory.getInstance("X.509", "SC")
    val certIS: InputStream = context.resources.openRawResource(R.raw.serverp1dist)
    val cert = cf.generateCertificate(certIS)
    mKeyStore.setKeyEntry(mKeyAlias, distRsaPrivateKey, null, arrayOf(cert))
}