getDeclaredField无法获取该类的所有字段(不包括该类)Toast.TN

时间:2019-05-06 07:49:38

标签: android reflection toast

当我在自己的android应用程序中使用反射反射Toast BadTokenException时,但是在设备HUAWEI Honor 10(android 9.0 Emui 9.0.0)和设备一加5T(android 9.0 H2OS 9.0.2)下运行此代码时,获取Toast.TN类字段,然后得到异常msg“类Landroid / widget / Toast $ TN中没有字段mHandler;('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无法获取android中Toast.TN的所有字段?有人可以帮助我吗?

0 个答案:

没有答案