[解決済み] android.util.AndroidRuntimeException: requestFeature() は、コンテンツを追加する前に呼び出す必要があります。
2023-06-26 14:30:21
質問
次のようなメッセージが表示されます。
android.util.AndroidRuntimeException: requestFeature() must be called before adding content
というエラーが発生します。 以下のコードでお分かりのように
requestWindowFeature(Window.FEATURE_NO_TITLE);
の行の前に
setContentView(R.layout.mainmenu);
という行があります。 このonCreate()コードは、私のアクティビティのほぼすべてで同じ形式であり、今まで一度も問題が発生したことはありませんでした。 ADT 22にアップデートして以来、多くのランダムなエラーが至る所に出現するようになりました。 私はこれらのエラーの多くを取り除き、これは私の最新のものです。
このエラーを修正するにはどうしたらよいのでしょうか。
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.mainmenu);
ログキャット
05-31 04:20:43.121: E/AndroidRuntime(14559): FATAL EXCEPTION: main
05-31 04:20:43.121: E/AndroidRuntime(14559): java.lang.RuntimeException: Unable to start activity ComponentInfo{matt.lyons.bibletrivia.lite/matt.lyons.bibletrivia.lite.MainMenu}: android.util.AndroidRuntimeException: requestFeature() must be called before adding content
05-31 04:20:43.121: E/AndroidRuntime(14559): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
05-31 04:20:43.121: E/AndroidRuntime(14559): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
05-31 04:20:43.121: E/AndroidRuntime(14559): at android.app.ActivityThread.access$600(ActivityThread.java:141)
05-31 04:20:43.121: E/AndroidRuntime(14559): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
05-31 04:20:43.121: E/AndroidRuntime(14559): at android.os.Handler.dispatchMessage(Handler.java:99)
05-31 04:20:43.121: E/AndroidRuntime(14559): at android.os.Looper.loop(Looper.java:137)
05-31 04:20:43.121: E/AndroidRuntime(14559): at android.app.ActivityThread.main(ActivityThread.java:5041)
05-31 04:20:43.121: E/AndroidRuntime(14559): at java.lang.reflect.Method.invokeNative(Native Method)
05-31 04:20:43.121: E/AndroidRuntime(14559): at java.lang.reflect.Method.invoke(Method.java:511)
05-31 04:20:43.121: E/AndroidRuntime(14559): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
05-31 04:20:43.121: E/AndroidRuntime(14559): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
05-31 04:20:43.121: E/AndroidRuntime(14559): at dalvik.system.NativeStart.main(Native Method)
05-31 04:20:43.121: E/AndroidRuntime(14559): Caused by: android.util.AndroidRuntimeException: requestFeature() must be called before adding content
05-31 04:20:43.121: E/AndroidRuntime(14559): at com.android.internal.policy.impl.PhoneWindow.requestFeature(PhoneWindow.java:229)
05-31 04:20:43.121: E/AndroidRuntime(14559): at android.app.Activity.requestWindowFeature(Activity.java:3244)
05-31 04:20:43.121: E/AndroidRuntime(14559): at matt.lyons.bibletrivia.lite.MainMenu.onCreate(MainMenu.java:28)
05-31 04:20:43.121: E/AndroidRuntime(14559): at android.app.Activity.performCreate(Activity.java:5104)
05-31 04:20:43.121: E/AndroidRuntime(14559): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
05-31 04:20:43.121: E/AndroidRuntime(14559): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
05-31 04:20:43.121: E/AndroidRuntime(14559): ... 11 more
どのように解決するのですか?
私もこの問題に直面しましたが、私はウィンドウの要求を呼び出すときに前に super.onCreate()を呼び出す前にウィンドウ要求を呼び出すと を呼び出すと、問題は解決しました。
@Override
public void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
setContentView(R.layout.mainmenu);
}
これがあなたの助けになることを願っています...:)
編集しました。Androidの新バージョンで考えられる他の解決策について
Android 4.0 以下でステータス バーを非表示にする
<application
...
android:theme="@android:style/Theme.Holo.NoActionBar.Fullscreen" >
...
</application>
アクティビティテーマを使用するメリットは以下の通りです。
- プログラムでフラグを設定するよりもメンテナンスが簡単で、エラーが起こりにくい。
- アプリのメインアクティビティのインスタンスを作成する前に、UI をレンダリングするために必要な情報をシステムが持っているため、UI の遷移がよりスムーズになります。
AndroidのバージョンはJellybeanより低いです。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// If the Android version is lower than Jellybean, use this call to hide
// the status bar.
if (Build.VERSION.SDK_INT < 16) {
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
setContentView(R.layout.activity_main);
}
Android 4.1以降でステータスバーを非表示にする
View decorView = getWindow().getDecorView();
// Hide the status bar.
int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);
// Remember that you should never show the action bar if the
// status bar is hidden, so hide that too if necessary.
ActionBar actionBar = getActionBar();
actionBar.hide();
以下のことに注意してください。
- UIフラグがクリアされると(アクティビティから離れるなどして)、バーを再び隠したい場合は、アプリがそれらをリセットする必要があります。以下を参照してください。 UI の可視性の変更に対応する を参照してください。
- UI フラグを設定する場所には違いがあります。アクティビティの onCreate() メソッドでシステム バーを非表示にし、ユーザーが Home を押した場合、システム バーが再び表示されます。ユーザーがアクティビティを再び開くと、onCreate()は呼び出されないので、システムバーは表示されたままになります。ユーザーがアクティビティに出入りするときにシステム UI の変更を持続させたい場合は、onResume() または onWindowFocusChanged() で UI フラグを設定します。
- setSystemUiVisibility() メソッドは、呼び出したビューが表示されている場合にのみ効果があります。
- ビューから離れると、setSystemUiVisibility() で設定されたフラグがクリアされます。
関連
-
executeQuery()でデータ操作文が発行できない。解決方法
-
javaの非静的メソッドを静的に参照することができない
-
Java Notes 005_この行に複数のマーカーがある - キーを変数に解決できない - シンタックスエラー、ins
-
Junitのユニットテストはjava.lang.Testを報告します。
-
XXX型を囲むインスタンスがJavaでアクセスできない
-
X11 DISPLAY変数が設定されていない」問題の解決方法
-
JNIエンカウンターエラー:構造体またはユニオンではない何かでメンバー 'FindClass' のリクエスト
-
春ブート複数のデータソースの管理(atomikos)同じサーバーホスト上の複数のプロジェクトを開始する複数のJava - jarのエラーソリューション
-
1分でわかる!恋人の写真をIDEAの背景画像に設定する方法【おすすめ集
-
ApiModel と @ApiModelProperty の使用法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
スレッド "main "での例外 java.util.NoSuchElementException in Java 問題解決済み
-
[解決済み] コンテンツを追加する前に requestFeature() をコールする必要があります。
-
スレッド "main" での例外 java.lang.ArrayIndexOutOfBoundsException:5 エラー
-
名前 'XXX' を持つ Bean の作成に失敗しました。自動依存関係の注入に失敗しました 解決方法
-
Javaがテキストファイルを読み込む
-
JDK8 の Optional.of と Optional.ofNullable メソッドの違いと使い方を説明する。
-
git pull appears現在のブランチに対するトラッキング情報がありません。
-
java 365*1000*60*60*24 計算問題
-
linux ant Resolve error: main class not found or couldn't be loaded org.apache.tools.ant.launcher.
-
[解決済み] DialogFragmentのカスタムレイアウト OnCreateView vs. OnCreateDialog