난독 화 문제가 있습니다. 더 나은 상상력의 경우 : 내가 암호화 된 버전을 출시 할 때까지JNI proguard 난독 화
자바 코드
class JniTest...
public void test()
{
//some code
}
public void runJniCode()
{
//here I call native code
}
네이티브 코드
JNIEXPORT void JNICALL
Java_path_to_class_test(JNIEnv* env, jobject obj)
{
//here I call test method from Java
}
모든 것이 잘 작동합니다. 이 클래스의 Java 클래스 (예 : JniTest
)와 test
의 이름은 "a"와 "a()"로 이름이 바뀌었지만 (항상 같지는 않을 수 있음) 원시 코드에서는 메소드의 원래 이름
jmethodID mid = env->GetMethodID(cls, "test", "someSignature");
... 동적 메소드 이름을 설정할 수있는 방법이있다 :이 문자열로 하드 코딩 있기 때문에 수업처럼, 남아?
안녕하세요, 해결책을 찾았습니까? –
아니요,이 방법을 유지하기 위해 proguard의 설정을 변경해야했습니다. ( – cecan89