Я определяю Java-класс из C с помощью вызова JNI DefineClass (), а затем регистрирую собственные обратные вызовы для методов в классе, которые являются родными.У класса есть два статических метода, оба из которых являются нативными.Я использую RegisterNatives () для регистрации нативных функций.Оба вызова завершаются успешно.
Но когда я ссылаюсь на эти нативные методы из своего Java-кода, я получаю java.lang.UnsatisfiedLinkError myPackage.myClass.myMethod (I) V
Но я знаю, что DefineClass вернул aобъект класса для myPackage.myClass, и я знаю, что myMethod (I) V был зарегистрирован как метод для этого класса.
Я получаю этот сбой так же, как он собирается выполнить main () - где вызовМой родной метод (в настоящее время для тестирования).
В качестве теста я дважды пытался вызвать DefineClass на одном и том же JNIEnv, чтобы увидеть, что произошло.Я получаю дубликат ошибки определения класса.Я также попытался вызвать FindClass () после его определения, и JNIEnv возвращает ссылку на определенный класс.
Таким образом, я определенно создаю класс динамически, но он терпит неудачу, когда я пытаюсь ссылаться на его методы.
Есть идеи?Все приветствуются.
Платформа: Windows, 32-битный код на 64-битной XP.