I am using reflection exactly according to:
But everytime I get this error and I don't know why.
12-02 17:53:58.650: W/System.err(10646): java.lang.NoSuchFieldException: modifiers
12-02 17:53:58.650: W/System.err(10646):    at java.lang.Class.getDeclaredField(Class.java:631)
12-02 17:53:58.650: W/System.err(10646):    at com.example.ref.MainActivity.setFinalStatic(MainActivity.java:56)
12-02 17:53:58.650: W/System.err(10646):    at com.example.ref.MainActivity.onCreate(MainActivity.java:26)
12-02 17:53:58.650: W/System.err(10646):    at android.app.Activity.performCreate(Activity.java:5206)
12-02 17:53:58.650: W/System.err(10646):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1083)
12-02 17:53:58.650: W/System.err(10646):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2064)
12-02 17:53:58.650: W/System.err(10646):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2125)
12-02 17:53:58.650: W/System.err(10646):    at android.app.ActivityThread.access$600(ActivityThread.java:140)
My code below:
    @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Log.i("aaa", "Before = " + securedField);
    try {
        Field stringField = MainActivity.class.getDeclaredField("securedField");
        stringField.setAccessible(true);
        setFinalStatic(stringField, new String("Screwed Data!"));
    } catch (Exception e) {
        e.printStackTrace();
    }
    Log.i("aaa", "After = " + securedField);
}
private void setFinalStatic(Field field, Object newValue) throws Exception {
    field.setAccessible(true);
    Field modifiersField = Field.class.getDeclaredField("modifiers");
    modifiersField.setAccessible(true);
    modifiersField.setInt(field, field.getModifiers() & ~Modifier.FINAL);
    field.set(null, newValue);
}
Does somebody know where the problem is? Thanks!
 
     
    