Я определяю класс Java от C с DefineClass (), но получаю UnsatisfiedLinkError

Я определяю класс 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 бита.

6
задан cwallenpoole 13 September 2011 в 15:15
поделиться