当我在自己的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的所有字段?有人可以帮助我吗?