2012-05-17 96 views
2

我使用默認設置將ProGuard添加到了我的Android項目中,並破壞了我的代碼。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: Could not find a method onSaveButtonClick(View) in the activity class xxxx for onClick handler on view class android.widget.Button with id 'xxxxx'

任何想法,爲什麼發生這種情況?

+1

你見過[這個線程](http://stackoverflow.com/questions/7796190/androidonclick-not-working-with-proguard)? – keyser

回答

3

Proguard正在將您的方法「onSaveButtonClick」更改爲「a」之類的內容。它不會更新您的XML文件,因此Android無法再找到它。您應該以編程方式設置您的點擊處理程序(在視圖上使用setOnClickListener)或遵循Keyser發佈的SO問題中的建議。