когда я передаю Toast BadTokenException с отражением в моем приложении для Android ,, но в устройствах HUAWEI honor 10 (android 9.0 Emui 9.0.0) и устройствах один плюс 5T (android 9.0 H2OS 9.0.2) выполнить этот код выше нельзя получить поле класса Toast.TN, и я получаю сообщение об исключении "Нет поля mHandler в классе Landroid / widget / Toast $ TN; (объявление 'android.widget.Toast $ TN' появляется в /system/framework/framework.jar! classes2.dex) "
private static Field sField_TN_Handler;
static {
try {
sField_TN = Toast.class.getDeclaredField("mTN");
sField_TN.setAccessible(true);
sField_TN_Handler=sField_TN.getType().getDeclaredField("mHandler");
sField_TN_Handler.setAccessible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
где проблема с методом getDeclaredField (String field), getDeclaredField не может получить все поля Toast.TN в Android? Может кто-нибудь мне помочь?