我使用默认设置将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'
为什么会发生这种情况?
答案 0 :(得分:3)
Proguard正在将您的方法“onSaveButtonClick”更改为类似“a”的内容。它不会更新您的XML文件,因此Android无法再找到它。您应该以编程方式设置单击处理程序(在视图上使用setOnClickListener),或者遵循Keyser发布的SO问题中的链接建议。