java.lang.IllegalStateException:getResources()已被调用

时间:2016-12-11 12:34:45

标签: android screen-orientation illegalstateexception android-configchanges

我希望我的应用可以手动处理方向更改。 这就是我实施onConfigurationChanged(Configuration newConfig)的原因,如下所示:

@Override
    public void onConfigurationChanged(Configuration newConfig) {
        applyOverrideConfiguration(newConfig);
        super.onConfigurationChanged(newConfig);
    }

但是,当我的应用程序运行时,我只是转动我的设备,然后,我的应用程序崩溃,我得到这些日志:

  

12-11 13:18:47.522 22290 22290 E AndroidRuntime fr.zwedge.becomerich   致命例外:主要12-11 13:18:47.522 22290 22290 E
  AndroidRuntime fr.zwedge.becomerich流程:   fr.zwedge.becomerich,PID:22290 12-11 13:18:47.522 22290 22290 E
  AndroidRuntime fr.zwedge.becomerich
  java.lang.IllegalStateException:getResources()已经存在   叫12-11 13:18:47.522 22290 22290 E AndroidRuntime   fr.zwedge.becomerich at   android.view.ContextThemeWrapper.applyOverrideConfiguration(ContextThemeWrapper.java:64)   12-11 13:18:47.522 22290 22290 E AndroidRuntime fr.zwedge.becomerich   在   fr.zwedge.becomerich.activity.MainActivity.onConfigurationChanged(MainActivity.java:1116)   12-11 13:18:47.522 22290 22290 E AndroidRuntime fr.zwedge.becomerich   在   android.app.ActivityThread.performConfigurationChanged(ActivityThread.java:4037)   12-11 13:18:47.522 22290 22290 E AndroidRuntime fr.zwedge.becomerich   在   android.app.ActivityThread.handleConfigurationChanged(ActivityThread.java:4113)   12-11 13:18:47.522 22290 22290 E AndroidRuntime fr.zwedge.becomerich   在   android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1435)   12-11 13:18:47.522 22290 22290 E AndroidRuntime fr.zwedge.becomerich   在android.os.Handler.dispatchMessage(Handler.java:110)12-11   13:18:47.522 22290 22290 E AndroidRuntime fr.zwedge.becomerich
  在android.os.Looper.loop(Looper.java:193)12-11 13:18:47.522 22290   22290 E AndroidRuntime fr.zwedge.becomerich at   android.app.ActivityThread.main(ActivityThread.java:5299)12-11   13:18:47.522 22290 22290 E AndroidRuntime fr.zwedge.becomerich
  在java.lang.reflect.Method.invokeNative(Native Method)12-11   13:18:47.522 22290 22290 E AndroidRuntime fr.zwedge.becomerich
  at java.lang.reflect.Method.invoke(Method.java:515)12-11 13:18:47.522   22290 22290 E AndroidRuntime fr.zwedge.becomerich at   com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:829)   12-11 13:18:47.522 22290 22290 E AndroidRuntime fr.zwedge.becomerich   在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:645)12-11   13:18:47.522 22290 22290 E AndroidRuntime fr.zwedge.becomerich
  在dalvik.system.NativeStart.main(本地方法)

不知道出了什么问题。希望有人能解释我,并帮助我,Darkball60

1 个答案:

答案 0 :(得分:0)

方法ContextThemeWrapper.applyOverrideConfiguration只能调用一次,并检查是否已访问资源。如果您在构造函数中调用了applyOverrideConfiguration,请检查您的代码,这一次发生在我身上。

同时检查documentation