Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 添加内容之前必须调用android.util.AndroidRuntimeException:requestFeature()_Java_Android - Fatal编程技术网

Java 添加内容之前必须调用android.util.AndroidRuntimeException:requestFeature()

Java 添加内容之前必须调用android.util.AndroidRuntimeException:requestFeature(),java,android,Java,Android,我发现在添加内容之前必须调用android.util.AndroidRuntimeException:requestFeature()。正如您在下面的代码中所看到的,requestWindowFeature(Window.FEATURE\u NO\u TITLE)行位于setContentView(R.layout.main菜单)之前代码行。这个onCreate()代码在我的每一个活动中都是相同的格式,我以前从未遇到过问题,直到现在。自从我更新到ADT 22后,到处都出现了很多随机错误。我已经排

我发现在添加内容之前必须调用
android.util.AndroidRuntimeException:requestFeature()。正如您在下面的代码中所看到的,
requestWindowFeature(Window.FEATURE\u NO\u TITLE)行位于
setContentView(R.layout.main菜单)之前代码行。这个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()之前调用windowrequest时,问题就解决了,请像这样尝试

@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>
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标志
  • 方法setSystemMivibility()只有在从中调用它的视图可见时才有效
  • 离开视图导航会导致清除使用setSystemMivibility()设置的标志

我在扩展一个对话框片段,但上面的答案不起作用。我必须使用getDialog()删除标题:

getDialog().getWindow().requestFeature(Window.FEATURE_NO_TITLE);
我在使用时遇到了一个异常(
android.util.AndroidRuntimeException:requestFeature()必须在添加内容之前调用)

requestWindowFeature(Window.FEATURE_NO_TITLE);
在运行Android 2.3.5(姜饼)的旧设备中。我正在使用v7支持库

当我将其更改为“使用”时,错误已修复:

supportRequestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
(这也是在修复中我的super.onCreate调用之后出现的)。见


因此,这可能更像是一条误导性错误消息。

如果您将活动用作对话框(使用Theme.Dialog),那么请确保扩展活动而不是ActionBarActivity(Android Studio向导为您提供的默认设置)。然后你可以用

requestWindowFeature(Window.FEATURE_NO_TITLE);


super.onCreate()

之后,请检查您的类是从活动扩展还是从ActionBarActivity。如果您正在使用ActionBarActivity,请使用Activity。

扩展(Activity)而不是(ActionBarActivity

示例:
public类Itemdetails扩展活动{..

然后在onCreate write中:

super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.Your_Activity);

@颜色/原色
@颜色/原色暗
@颜色/颜色重音
假的

我在另一个工作流中也遇到了此错误。我创建了一个自定义DialogFragment类,并创建了两个
@Override
函数-onCreateView和onCreateDialog。我的onCreateView函数获取了片段的自定义布局,我的onCreateDialog函数创建了一个AlertDialog.Builder

这似乎不起作用,因为onCreateDialog是在onCreateView之前调用的。在我删除onCreateView[通过将自定义视图移动到onCreateDialog中]后,我遇到了错误:

java.lang.IllegalStateException:指定的子项已具有父项。必须首先对子项的父项调用removeView()。

我意识到我的困难来自于尝试实现两个覆盖,因为我想1)使用对话框主视图的布局,2)使用生成器预定义的正/负按钮。我的解决方案是在自定义对话框视图中创建正/负按钮,因此我删除了覆盖onCreateDialog的实现功能

希望这对将来的人有帮助

以下是一些帮助我的问题:


    • 我认为最简单的方法是使用下面的代码

        getActionBar().setTitle(null);
      

      请尝试以下选项,其中至少有一个适合您:

    • 如果您使用的是DialogFragment,请尝试不要同时重写方法
      onCreateDialog(..)
      onCreateView(..)
      (此更改对我有效)

    • 在活动中的
      setContentView(..)
      之前和
      super.onCreate(..)之后尝试
      supportRequestWindowFeature(Window.FEATURE\u NO\u TITLE)/requestWindowFeature(Window.FEATURE\u NO\u TITLE)

    • super.onCreate(..)之前尝试选项2;

    • 把你的台词放错地方了: super.onCreate(savedInstanceState)

      使用这种方式:

      @Override
          protected void onCreate(Bundle savedInstanceState) {
              this.requestWindowFeature(Window.FEATURE_NO_TITLE);
              super.onCreate(savedInstanceState);
              setContentView(R.layout.activity_qrscanner);
      

      我在调用
      AlertDialog
      时遇到了这个错误,而这个错误只有在调用
      dialog.show()
      时才会发生在API 19中

      我发现,
      android.app.AlertDialog
      导入导致了这个问题,所以我把它改成了
      androidx.appcompat.app.AlertDialog
      ,并修复了它


      请注意,如果您使用的是androidx,这将起作用。如果您不使用,则应使用该导入的旧appcompat版本。

      您能详细说明一下吗?我不知道“通过主题”是什么意思。您可以在活动标记下的清单中应用主题,如android:theme=“@android:style/theme.NoTitleBar.Fullscreen”而是在onCreate中编写java代码。@clu此requestFeature(int featureId)m
        getActionBar().setTitle(null);
      
      @Override
          protected void onCreate(Bundle savedInstanceState) {
              this.requestWindowFeature(Window.FEATURE_NO_TITLE);
              super.onCreate(savedInstanceState);
              setContentView(R.layout.activity_qrscanner);