我有一個Android AAR庫。我想對我的圖書館的消費者應用程序施加的一個安全策略是,當debuggable
爲true或者使用debug buildType.
如何在Android庫中檢查可調試性或調試構建類型?
時,它不能使用我的庫我該如何在android中以編程方式檢查此問題?
我有一個Android AAR庫。我想對我的圖書館的消費者應用程序施加的一個安全策略是,當debuggable
爲true或者使用debug buildType.
如何在Android庫中檢查可調試性或調試構建類型?
時,它不能使用我的庫我該如何在android中以編程方式檢查此問題?
有與反思的解決辦法,以獲得類似這樣的項目(不圖書館)BuildConfig值:
/**
* Gets a field from the project's BuildConfig. This is useful when, for example, flavors
* are used at the project level to set custom fields.
* @param context Used to find the correct file
* @param fieldName The name of the field-to-access
* @return The value of the field, or {@code null} if the field is not found.
*/
public static Object getBuildConfigValue(Context context, String fieldName) {
try {
Class<?> clazz = Class.forName(context.getPackageName() + ".BuildConfig");
Field field = clazz.getField(fieldName);
return field.get(null);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (NoSuchFieldException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
return null;
}
要獲得DEBUG
領域,例如,剛剛從圖書館Activity
稱之爲:
boolean debug = (Boolean) getBuildConfigValue(this, "DEBUG");
我還沒有嘗試過這一點,並不能保證它會一直工作,但你可以繼續前進!
你可以檢查你的庫的'build.gradle'來檢測它的調試與否,但你將如何檢查消費者的'build.gradle'? – matrix
@KostasDrakonakis這就是問題:) –
@FarhadFaghihi但是什麼原因?重要的一點是你的庫不在調試中。每個人都以調試模式開發應用程序。 –