首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Android Studio 專案中 onClick 找不到方法:Could not find a method sys_setting(View)

     編輯:程式設計綜合問答

錯誤現象

XML 佈局中按鈕設定 android:onClick="sys_setting",Activity 中已定義 public void sys_setting(View view),運行卻拋出 IllegalStateException: Could not find a method sys_setting(View)。

常見原因與排查步驟

  1. 佈局與 Activity 不匹配
    確認 setContentView(R.layout.activity_dev_list) 載入的佈局檔案正是包含該按鈕的 XML。若有多個同名 Activity 或 Flavor 導致資源 ID 錯位,會找不到方法。
  2. 方法簽名不符
    必須是 public void methodName(View v),參數型別、修飾符、拼寫需完全一致。檢查是否誤寫為 sys_setting() 缺參數,或置於內部類/匿名類中。
  3. 編譯緩存問題
    執行 Build → Clean Project → Rebuild Project,或 File → Invalidate Caches / Restart 清除 IDE 緩存。
  4. 混淆/縮略導致方法被移除
    若啟用 ProGuard/R8,需在規則檔加入:
    -keepclassmembers class * { public void *(android.view.View); }

替代方案:代碼綁定點擊事件

避免 XML onClick 反射機制的不穩定,建議在 onCreate 中显式綁定:

Button btn = findViewById(R.id.your_button_id);
btn.setOnClickListener(v -> sys_setting(v));

此方式編譯期即可檢查錯誤,且不受混淆影響,為官方推薦做法。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved