У нас очень странная проблема. Наше родное приложение выдает «UnsatisfiedLinkError» при любом исходном вызове, который мы совершаем. Но только на Android 5.0 и только на Galaxy S5. Приложение работает нормально на всех других устройствах, но сбой наблюдается только на этом устройстве (его загрузили почти 1 миллион раз).
Приложение имеет встроенную активность, поэтому загрузка библиотеки не является проблемой (приложение некоторое время работает в исходном режиме до первого вызова java->native).
RegisterNatives возвращает 0 (успех). Но как только срабатывают собственные обратные вызовы, приложение выдает:
java.lang.UnsatisfiedLinkError: Не найдена реализация для void com.rubicon.dev.NativeActivity.Adverts_InterstitialFinished(int) (пробовал Java_com_rubicon_dev_NativeActivity_Adverts_1InterstitialFinished и Java_com_rubicon_dev_NativeActivity_Adverts_1InterstitialFinished__I)
(Сбой межстраничного объявления — это первый обратный вызов, это правильно).
Кто-нибудь сталкивался с этим?
Подробнее:
После долгих поисков:
Наше Java-приложение:
OurEngineNativeActivity расширяет NativeActivity
{
нативные... не работают.
OurGameActivity расширяет OurEngineNativeActivity
{
нативные... работают корректно.
(Все это отлично работает на Android < 5.0)
При регистрации нативных программ я регистрирую нативные приложения с помощью GetObjectClass() — они работают.
При регистрации нативных нативных программ для движка я использую FindClass, который возвращает класс, никаких ошибок или предупреждений не возникает.
Вызов любого нативного кода движка приводит к ошибке ссылки.
Если я делаю все вызовы regiserNatives с использованием GetObjectClass, он отлично работает только на Android > 5.0, вылетает на < 5.0
Полная путаница.
Стив.