팀 구성원의 JNI 문제를 디버깅해야합니다. 문제는 JNI를 사용하여 USB로 연결된 하드웨어를 인터페이싱하는 Java 응용 프로그램에 있습니다. 그는 C++ dll로 구현 된 JNI 기능이 Java 응용 프로그램에서 호출되지 않는다고 언급했습니다. 또한 그는 구체적으로 그것이 내가 의심할만한 최초의 링크 오류 오류가 아니라고 언급했다.JNI 함수가 호출되지 않습니다.
이상한 점은 Java App이 개발 시스템에서 제대로 작동하고 JNI 호출이 제대로 이루어지고 있다는 것입니다. 그러나 QA 팀의 대상 컴퓨터에서 Java 응용 프로그램이 작동하지 않는 것 같습니다.
DLL (32 비트)은 VS2010을 사용하여 생성되었으며 대상 컴퓨터는 WinXP/Win 7 32 비트 시스템이었습니다. DLL이 개발 시스템에서 인식되었으므로 DLL 메소드 서명 문제를 배제 할 것입니다. 언급했듯이, 그것은 링크 문제가 아니 었습니다.
JNI 메소드의 문제가 전혀 호출되지 않을 수 있습니까? 이것이 재배포 가능 항목에 문제가 될 수 있습니까? 디버깅 (JVM 옵션 사용) 및 문제 확인 방법
'불리지 않는다'는 것을 의미합니까? – bmargulies
DLL이 CRT에 정적으로 링크되어 있다고 가정하면 대상 시스템에 올바른 CRT 재배포 프로그램이 설치되어 있습니까? – ildjarn
앱에 하드웨어를 초기화하는 컨트롤이 있으며 JNI init()을 호출해야합니다. 하드웨어가 초기화되지 않아 init()이 호출되지 않았 음을 알았습니다. 이것을 확인하는 방법? – Mano