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