Windows/Visual Studio에서 머리를 짜는 데 어려움을 겪고 있습니다. Java 실행 파일로 호출하고 Xcode 아래에서 디버그하고 싶습니다. 코드를 실행하고, JNI 라이브러리에서 변수를 검사하고, 중단 점을 설정하는 등의 작업을 수행합니다.Xcode 4/OS X 10.6을 사용하여 JNI 코드 디버깅
작동중인 JNI 예제입니다. 커맨드 라인에서 정상적으로 컴파일되어 실행됩니다. 누군가가 Xcode에서 이것을 설정하는 방법을 말해 줄 수 있다면, 나는 영원히 감사 할 것입니다. 이상적으로, 나는 Xcode에서 처음부터 시작하여 적절한 코드를 잘라내어 붙여 넣기하는 단계별 지침을 원합니다. Xcode 4에서 디버깅 할 수있는 기능을 제공하고 JNI 코드에서 중단 점을 설정하고 변수를 검사 할 수있게합니다. , stacktraces 등을 참조하십시오.
감사의 표시로, 제게 Paypal 주소를 알려 주면 제게 재현 할 수있는 지시 사항을 제게주는 20 달러를 첫 번째 사람에게 보냅니다.
미리 감사드립니다.
HelloWorld.java
class HelloWorld {
public native String displayHelloWorld();
static {
System.loadLibrary("HelloWorldImp");
}
public static void main(String[] args) {
System.out.println("--> "+new HelloWorld().displayHelloWorld());
}
}
HelloWorldImp.mm
#include <stdio.h>
#include <jni.h>
#include <string>
#import <Foundation/Foundation.h>
#ifdef __cplusplus
extern "C" {
#endif
JNIEXPORT jstring JNICALL
Java_HelloWorld_displayHelloWorld(JNIEnv *env, jobject obj)
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
NSString* name = @"Yo Cocoa";
std::string s = [name UTF8String];
jstring ret = env->NewStringUTF(s.c_str());
[pool drain];
return ret;
}
#ifdef __cplusplus
}
#endif
buildjni.sh
,gcc -bundle -I/System/Library/Frameworks/JavaVM.framework/Headers -lstdc++ -o libHelloWorldImp.jnilib -framework Foundation HelloWorldImp.mm
아무도이 점프를하지 않아서 해결책을 찾은 후 20 달러 할인이 만료되고 여기에 게시하면 즉시 만료됩니다. :) – membar