2013-10-07 42 views
6

最后一次更新我的应用程序有以下问题后:AndroidRuntimeException:requestFeature()必须加入独家内容之前被调用到蜂窝3.1 - 3.2.1

java.lang.RuntimeException: Unable to start activity ComponentInfo{my.package/my.package.MyMainActivity}: android.util.AndroidRuntimeException: requestFeature() must be called before adding content 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1818) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1834) 
at android.app.ActivityThread.access$500(ActivityThread.java:122) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1027) 
at android.os.Handler.dispatchMessage(Handler.java:99) 
at android.os.Looper.loop(Looper.java:132) 
at android.app.ActivityThread.main(ActivityThread.java:4126) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:491) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:844) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602) 
at dalvik.system.NativeStart.main(Native Method) 
Caused by: android.util.AndroidRuntimeException: requestFeature() must be called before adding content 
at com.android.internal.policy.impl.PhoneWindow.requestFeature(PhoneWindow.java:214) 
at android.support.v7.app.ActionBarActivityDelegateHC.onCreate(ActionBarActivityDelegateHC.java:38) 
at android.support.v7.app.ActionBarActivity.onCreate(ActionBarActivity.java:98) 
at my.package.MyBaseActivity.onCreate(MyBaseActivity.java:68) 
at my.package.MyApiServiceActivity.onCreate(MyApiServiceActivity.java:51) 
at my.package.MyActivity.onCreate(MyActivity.java:88) 
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1050) 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1782) 
... 11 more 

不过,我从来没有打电话requestWindowFeature或相似。也没有涉及对话。报告本身来自BugSense,我自己从来没有遇到过这个问题。这是一个相当受欢迎的应用程序,问题是独家到Android 蜂巢:3.2,3.2.1和3.1。它在以前版本的应用程序中没有发生。更新后onCreate函数中唯一的变化是我从ActionBarSherlock切换到ActionBarCompat的事实。

任何人都发现了这个问题,以及/或者有什么想法如何克服这个问题?

编辑: 我从V7包添加链接the source for ActionBarActivityDelegateHC在崩溃堆栈跟踪(由...引起的)开始。在那里发生requestFeature调用,但是它的调用正确,即使在super.onCreate之前。

我用摇篮导入的包:compile 'com.android.support:appcompat-v7:18.0.+'

+1

旋转过程中的相同问题,我想通过在蜂窝设备上锁定方向来解决它。蜂窝的统计数据太悲哀:http://developer.android.com/about/dashboards/index.html#Platform,所以我们不会关心它) –

+0

@shomeser你知道这个问题是否具体到旋转? – zilinx

+0

我只在旋转过程中重现它,所以我会锁定蜂巢的横向,但是如果你找到合适的解决方案,我会用它 –

回答

6

所以看起来像@shomeser(评论的问题)的解决方案是很长的路要走暂时。

有两种方式妥协:

  • 如果你不具备横向和纵向不同的布局,您可以禁用方向变化(AndroidManifest:android:configChanges="screenSize|orientation"
  • 如果你有一些处理在方向改变而不能使用 “configChanges”,你可以锁定方向(onCreate
 
    if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB 
      || Build.VERSION.SDK_INT <= Build.VERSION_CODES.HONEYCOMB_MR2) 
    { 
     this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 
    } 
  • 最后我最不喜欢的(尽管这个完成),放弃ABC并回到ABS。

我也发布了ticket on Android Issue Tracker,但它是一个蜂窝问题,我不期望得到答案。

更新:为特定的蜂窝设备发布锁定方向后,我仍然看到这个崩溃报告,虽然不太频繁。

UPDATE 2: 问题已修复!现在只是等待释放新的支持库:google issue tracker

+0

你有堆栈的崩溃,是否与第一个相同?你在真实设备上测试你的应用程序吗? –

+0

@shomeser这是相同的堆栈跟踪 - 它崩溃了锁定方向的活动;该错误报告指向真实的设备(始终是相同的Honeycomb版本)。 – zilinx

+0

请给我一个链接到您的应用程序,请。我想你可以在暂停和恢复后重现它。 –

相关问题