JNI proguard Verschleierung

Ich habe ein problem mit der Verschleierung. Für eine bessere Vorstellung:

JAVA-CODE

class JniTest...

public void test()
{
    //some code
}

public void runJniCode()
{
    //here I call native code
}

NATIVE CODE

JNIEXPORT void JNICALL
Java_path_to_class_test(JNIEnv* env, jobject  obj)
{
    //here I call test method from Java

}

Alles funktioniert gut, bis ich freigeben möchten eine verschleierte version. Der name der Java-Klasse (JniTest zum Beispiel) und Methode test in dieser Klasse werden umbenannt, indem proguard zu "a" und "a ()" " (dies ist nicht immer die gleiche), aber in native-code die ursprünglichen Namen der Methode und der Klasse bleiben, weil es hardcoded als string, wie:

jmethodID mid = env->GetMethodID(cls, "test", "someSignature");

... gibt es irgendeine Möglichkeit, den Namen der Methode, dynamisch?

  • hey, hast du keine Lösung gefunden ?
  • Nein, ich hatte zum ändern der Einstellungen der proguard zu halten diese Methode 🙁
InformationsquelleAutor cecan89 | 2013-09-25
Schreibe einen Kommentar