getDeclaredField не может получить все поля класса (исключая класс) Toast.TN - PullRequest
0 голосов
/ 06 мая 2019

когда я передаю 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? Может кто-нибудь мне помочь?

...