I want to set "NO_CACHE" to be newValue. Here is my code:
static void setFinalStatic(Object newValue) throws Exception
{
Field field = CacheManager.class.getDeclaredField("NO_CACHE");
field.setAccessible(true);
Field modifiersField=Field.class.getDeclaredField("modifiers");
modifiersField.setAccessible(true);
modifiersField.setInt(field,field.getModifiers() & ~Modifier.FINAL);
field.set(null, newValue);
}
But running this code on Android produces the following error:
java.lang.NoSuchFieldException: modifiers
I find modifiers is a field in the Field class in Java, but it is not a field in the Field class on Android.
This is Java Field class code:
http://www.docjar.com/html/api/java/lang/reflect/Field.java.html
This is Android Field class code:
http://www.oschina.net/code/explore/android-2.2-froyo/java/lang/reflect/Field.java
The above code in Java can work, but it does not work on the Android platform.
How do I fix this?
modifiersto begin with. I don't see how it would ever work.