私はsmaliファイルをコーディングする方法を学んでおり、文字列パラメータを取り、それをログに入れる特定のメソッドを作成しました.そのJava同等物は次のようなものです:
public void log(String param){
Log.d(param, param);
}
そして、もう一度それをスマイルしてapkに署名したとき、logCatに次のエラーが表示されました:
10-05 21:52:42.081: W/dalvikvm(32021): VFY: register1 v2 type 0, wanted ref
10-05 21:52:42.081: W/dalvikvm(32021): VFY: bad arg 0 (into Ljava/lang/String;)
10-05 21:52:42.081: W/dalvikvm(32021): VFY: rejecting call to Landroid/util/Log;.d (Ljava/lang/String;Ljava/lang/String;)I
10-05 21:52:42.081: W/dalvikvm(32021): VFY: rejecting opcode 0x71 at 0x0000
10-05 21:52:42.081: W/dalvikvm(32021): VFY: rejected Lcom/shqipe/worthstream/utils/Utils;.log (Ljava/lang/String;)V
10-05 21:52:42.081: W/dalvikvm(32021): Verifier rejected class Lcom/shqipe/worthstream/utils/Utils;
10-05 21:52:42.081: D/AndroidRuntime(32021): Shutting down VM
これは、smali ファイルのメソッドです。
.method public static log(Ljava/lang/String;)V
.registers 2
.parameter "paramString"
.prologue
invoke-static {p1, p1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
.line 63
return-void
.end method
このエラーをデバッグする方法を誰かに説明してもらえますか?