ProGuard打破了我的Android代码

时间:2012-05-17 20:20:17

标签: android proguard

我使用默认设置将ProGuard添加到我的Android项目中,它破坏了我的代码。

在第一个屏幕上,我有一个像这样的按钮:

  <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:找不到方法   onSaveButton单击(查看)活动类xxxx中的onClick处理程序   在视图类android.widget.Button上,id为'xxxxx'

为什么会发生这种情况?

1 个答案:

答案 0 :(得分:3)

Proguard正在将您的方法“onSaveButtonClick”更改为类似“a”的内容。它不会更新您的XML文件,因此Android无法再找到它。您应该以编程方式设置单击处理程序(在视图上使用setOnClickListener),或者遵循Keyser发布的SO问题中的链接建议。