Wygląda na to, że ManagementFactory to czerwony śledź, ponieważ kierowca łapie ten wyjątek i zamiast tego wraca do korzystania z losowej liczby.
Prawdziwym problemem wydaje się być to, że sterownik musi uwierzytelnić się za pomocą SCRAM-SHA-1, którego implementacja importuje następujące klasy:
import javax.crypto.Mac;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.PBEKeySpec;
import javax.crypto.spec.SecretKeySpec;
import javax.security.sasl.SaslClient;
import javax.security.sasl.SaslException;
Podejrzewam, że nie są one dostępne na platformie Android, która nie jest kompletną implementacją środowiska Java Runtime Environment.
Jedną z rzeczy, które możesz spróbować, to uruchomić przeciwko MongoDB 2.6, w przypadku którego implementacja uwierzytelniania sterownika opiera się tylko na java.security.MessageDigest.
Kolejną rzeczą do przemyślenia jest umieszczenie usługi REST między aplikacją mobilną a MongoDB, która jest odpowiedzialna za proxy wszystkie interakcje z bazą danych. Aplikację REST można uruchomić w środowisku, w którym sterownik MongoDB będzie w pełni funkcjonalny.