2

デフォルト設定を使用してAndroidプロジェクトにProGuardを追加しましたが、コードが壊れていました。

最初の画面には、次のようなボタンがあります。

  <Button
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:onClick="onSaveButtonClick" />

そして、私はクラスにメソッドを持っています:

public void onSaveButtonClick(View view){
 // some code 
}

ProGuardを無効にすると、すべてが正常に機能します。有効にすると、ボタンをクリックすると次のエラーが発生します。

05-17 16:04:54.099:E / AndroidRuntime(1181):java.lang.IllegalStateException:ビュークラスandroid.widget.ButtonのonClickハンドラーのアクティビティクラスxxxxにメソッドonSaveButtonClick(View)が見つかりませんでした' xxxxx '

なぜこれが起こったのか考えはありますか?

4

1 に答える 1

3

Proguardは、メソッド「onSaveButtonClick」を「a」のようなものに変更しています。XMLファイルは更新されないため、Androidはそれを見つけることができなくなります。クリックハンドラーをプログラムで設定するか(ビューでsetOnClickListenerを使用)、Keyserが投稿したリンクされたSOの質問のアドバイスに従う必要があります。

于 2012-05-17T20:36:53.503 に答える