Я скомпилировал плагин .jar с файлом X.class
. Файл X.class
содержит метод Y с параметрами Y (строка s1, строка s2 ....). Мне нужно перейти к еще одной строке - поэтому я запустил reJ и dirtyJoe, отредактировал дескриптор моего метода Y, изменил максимальное количество локальных переменных с 8 на 9, добавил новую локальную переменную, установил ее так же, как и предыдущие, просто дал ей другую индекс, отредактированный код и сохраненный метод. Я упаковал его обратно в .jar-файл и попытался скомпилировать в Unity новую версию моего плагина. К сожалению, - он дал мне ошибку говоря моя новая переменная недействительна -Добавление параметра для работы в Java Байткод
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
Это мой самый первый раз с Java байткод, надеюсь, я буду получить некоторую помощь. Благодаря!
Я немного смущен, почему вы пытаетесь установить параметр на уровне байт-кода - не могли бы вы объяснить, почему использование функции в качестве опции не соответствует вашим потребностям? – romeara
, потому что мне нужно поставить еще одну строку в андроид Intent, вызванный в этой функции. –