Есть проект под андроид с использованием JNI. Внутри нативного кода (на c++) вызывается dlopen. И все, на этом вызове (самом первом) процесс виснет намертво.
Нагуглился вариант с дедлоком трэда из за рекурсивного вызова dlopen, но у меня вызов никак не рекурсивный: в статик конструкторе загружается нативная либа, как System.LoadLibrary(«path»), в рантайме вызывается нативный метод, который по очереди загружает несколько других библиотек, так что это не тот вариант.
Еще одна загадка: буквально недавно я собирал с абсолютно тем же конфигом, и все работало на отлично. С тех пор менялся только юзеркод внутри либ, но ничего системного, новых либ тоже не добавилось.
Да, и еще, это все на старом телефоне с андроидом 2.2, на планшете с четверкой и было все ок, и осталось ок.