Я подозреваю, что вы указали неверный код.Если вы посмотрите на сообщение об ошибке, оно упоминает код операции 0x76, который равен invoke-direct/range
.В предоставленном вами фрагменте кода нет инструкции invoke-direct/range
, поэтому, если не происходит какой-то действительно странный код, это не может быть кодом, вызывающим проблему.
Также посмотритепо названию метода в сообщении об ошибке: Lcom/pocketwood/myav/MyAV;.k (I)V
.Есть то, что выглядит как пробел после k.Сам символ пробела не является допустимым символом в имени метода, но, может быть, это действительно какой-то другой пробелоподобный символ Юникода?
Nevermind.Это пространство, похоже, запекается в сообщении об ошибке .
Наконец, смещение, указанное в сообщении об ошибке (at 0x068a
), должно быть смещением кода инструкции в содержащем методе.Вы можете использовать опцию baksmali --offsets
при разборке файла dex, и baksmali добавит комментарий со смещением кода перед каждой инструкцией.Хотя я не уверен, что это смещение, если это смещение в байтах или кодовых единицах (16 бит), поэтому оно может быть отключено с коэффициентом 2 *.