我有混淆的問題。爲了更好地想象:JNI proguard obfuscation
Java代碼
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
的名稱被proguard重命名爲「a」和「a()」(這可能不總是相同的),但在本地代碼中,方法的原始名稱和類保持,因爲它被硬編碼爲一個字符串,如:
jmethodID mid = env->GetMethodID(cls, "test", "someSignature");
...有什麼方法可以動態設置方法名嗎?
嘿,你有沒有找到解決辦法? –
不,我必須更改proguard中的設置以保留此方法:( – cecan89