天天看點

android方法數超限,Android超出方法數量限制問題

以前Java基礎的時候,寫JavaBean類都是有快捷鍵自動生成的,我們隻需要定義好成員變量字段,剩下的構造方法、getXxx()方法,setXxx()方法,都可以自動生成。格式如下:

public class TrackOrderBean {

private boolean success;

private String driverId;

private String licensePlat;

private String dispatchOrderId;

private int interval;

private List> errors;

public boolean isSuccess() {

return success;

}

public void setSuccess(boolean success) {

this.success = success;

}

public String getDriverId() {

return driverId;

}

public void setDriverId(String driverId) {

this.driverId = driverId;

}

public String getLicensePlat() {

return licensePlat;

}

public void setLicensePlat(String licensePlat) {

this.licensePlat = licensePlat;

}

public String getDispatchOrderId() {

return dispatchOrderId;

}

public void setDispatchOrderId(String dispatchOrderId) {

this.dispatchOrderId = dispatchOrderId;

}

public int getInterval() {

return interval;

}

public void setInterval(int interval) {

this.interval = interval;

}

public List> getErrors() {

return errors;

}

public void setErrors(List> errors) {

this.errors = errors;

}

}

但是在Android裡面,我們可能會看到一些老程式員會這樣寫JavaBean類:

public class TrackOrderBean {

public boolean success;

public String driverId;

public String licensePlat;

public String dispatchOrderId;

public int interval;

public List> errors;

}

因為成員變量聲明是public,我們可以直接引用它,不需要getXxx()和setXxx()方法。這樣做是為了避免方法數量超過限制的問題。因為Android中的方法數量不能超過65535,如果超過了,你可能會遇到一些意想不到的Bug。比如,我就遇到了Build APK失敗的問題。

先選擇Build APK

android方法數超限,Android超出方法數量限制問題

圖檔.png

然後Android Studio就會報錯

android方法數超限,Android超出方法數量限制問題

圖檔.png

最開始,我以為是代碼裡有錯誤是以導緻這個問題,但是檢查了代碼沒有發現Bug。之後我又懷疑可能是清單檔案或者build.gradle檔案裡面的配置有誤,通通排查了一遍也沒有發現問題。

後來終于找到了,因為是項目中所有的方法數量超過65535導緻的。解決的方法就是,在build.gradle檔案中,添加如下代碼:

dexOptions{

jumboMode true

}

解決方法很簡單,但是發現這個問題很難,我也是卡了很久才發現的。這樣的話,我們用Android studio寫JavaBean類也可以用快捷鍵Alt + Insert來自動生成。不用再擔心方法數量超出限制的問題了。

希望能幫到你。