【问题标题】:ProGuard broke my Android codeProGuard 破坏了我的 Android 代码
【发布时间】:2012-05-18 04:36:53
【问题描述】:

我使用默认设置将 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:找不到方法 onClick 处理程序的活动类 xxxx 中的 onSaveButtonClick(View) 在 id 为 'xxxxx' 的视图类 android.widget.Button 上

你知道为什么会这样吗?

【问题讨论】:

标签: android proguard


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2017-09-30
    • 1970-01-01
    • 1970-01-01
    • 2018-12-14
    • 2022-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-13
    相关资源
    最近更新 更多