我收到此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);
LogCat
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();
请注意以下几点:
依赖关系: 错误: E/ART:未能向调试器发送答复:breaked pipe 02-12 20:12:06.039 292 71-29271/com.desarrollandolatam.nbortolotti.mobileacademialatam E/androidruntime:致命异常:main process:com.desarrollandolatam.nbortolotti.mob
问题内容: 我在hibernate映射方面遇到了一些问题。就像这里 : 当我打电话给我时,出现异常: 为何hibernate无法单独使用这些ID?怎么了 问题答案: 首先-它不能生成它们,因为您没有告诉它怎么做。使用并选择所需的策略。 然后-您不能有两个字段。如果您想使用复合ID,请使用或
我有一个包含字段名、姓、性别、电子邮件、密码、DOB、地址和角色的user类。 我想创建电子邮件作为我的主键,因此我有@id,但由于它是字符串类型,我不能使用@Generation注释。每当我尝试在Db中插入一个新用户时,我都会得到一个错误,嵌套的异常是org.hibernate.id.IdentifierGenerationException:在使用根本原因调用save():com.niit.m
问题内容: 因此,我遵循了Parse SDK网站的《快速入门指南》中的说明。该应用程序第一次运行良好。但是,当我最小化该应用程序并从任务切换器再次运行它时,它会强制关闭。 该错误对我来说没有任何意义。Logcat- Mainactivity.java 问题答案: 您可以有一个单独的类来执行初始化工作。因此,创建一个可扩展的类。 然后在AndroidManifest.xml中,将类添加到Applic
我不明白为什么当一个被破坏时,它必须处于连接()或分离()状态。 连接等待线程完成,而分离不会。似乎有一些我不理解的中间状态。因为我的理解是连接和分离是互补的:如果我不调用连接(),那么分离()是默认的。 逻辑上的detach()应该是线程的默认行为,因为这是线程的定义,它们是并行执行的,与其他线程无关。 那么,当线程对象被破坏时,为什么要调用terminate()呢?为什么标准不能简单地将线程视
我得到以下错误: 一个月后,我正在检查我的程序,之前相同的代码没有给出错误,我想我没有改变任何可能导致这一点的东西。我试图解决这个问题;所以在第1行的错误中提到: