I've got compiled .jar plugin with X.class
file. X.class
file contains a method Y with parameters Y(string s1, string s2....). I need to pass to one more string - so i launched reJ and dirtyJoe, edited a descriptor of my Y method, changed maximum local variables count from 8 to 9, added new local variable, set it same as previous variables, just gave it another index, edited code and saved the method. I packed it back into .jar file and tried to compile in Unity with new version of my plugin. Unfortunately - it gave me error saying my new variable is invalid -
EXCEPTION FROM SIMULATION:
local 0008: invalid
...at bytecode offset 00000036
locals[0000]: Ljava/lang/String;
locals[0001]: Ljava/lang/String;
locals[0002]: Ljava/lang/String;
locals[0003]: Ljava/lang/String;
locals[0004]: Ljava/lang/String;
locals[0005]: [B
locals[0006]: Landroid/net/Uri;
locals[0007]: Landroid/content/Intent;
locals[0008]: <invalid>
stack[0001]: Landroid/content/Intent;
stack[top0]: string{"android.intent.extra.TEXT"}
...while working on block 0036
...while working on method StartShareIntentMedia:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
...while processing StartShareIntentMedia (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
...while processing com/androidnative/features/social/common/SocialGate.class
That's my very first time with Java bytecode, hope i'll get some help. Thanks!