带有半透明闪屏的 Android 崩溃
Posted
技术标签:
【中文标题】带有半透明闪屏的 Android 崩溃【英文标题】:Android crash with translucent splash screen 【发布时间】:2017-04-04 21:04:21 【问题描述】:我试图在应用程序启动时实际启动屏幕之前删除系统白色启动。 我关注这个主题:How To fix white screen on app Start up? 并为启动活动创建了半透明样式:
<style name="Splash" parent="@android:style/Theme.Translucent">
<item name="windowNoTitle">true</item>
<item name="windowActionBar">false</item>
<item name="android:windowFullscreen">true</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowDisablePreview">true</item>
</style>
但在安装后首次启动时,应用程序崩溃并出现以下未处理的异常:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: ru.perekrestok.app, PID: 13791
java.lang.IllegalArgumentException: reportSizeConfigurations: ActivityRecord not found for: Token5b77a38 null
at android.os.Parcel.readException(Parcel.java:1687)
at android.os.Parcel.readException(Parcel.java:1636)
at android.app.ActivityManagerProxy.reportSizeConfigurations(ActivityManagerNative.java:6844)
at android.app.ActivityThread.reportSizeConfigurations(ActivityThread.java:2768)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2711)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6077)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
第一次启动后应用程序正常启动。我可以修复这种行为吗?如果这很重要,我正在使用最新的 android 支持库
【问题讨论】:
发布您的主要活动代码 我试图注释掉除 setContentView 之外的所有内容,但结果相同:pastebin.com/CNj5ABJP @wingear 你能解决这个问题吗? @PravinSonawane 不,我必须恢复到非半透明的启动屏幕 【参考方案1】:使用此更改清单中的活动条目。这将删除白色飞溅(因为主题是半透明的)并且您的实际飞溅将可见。
<activity
android:name=".SplashActivity"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Translucent.NoTitleBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
【讨论】:
Unable to start activity ComponentInfomyapp.app.screens.SplashActivity: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
也许有这个主题的 AppCompat 类似物
你能分享你的启动活动吗?
@wingear 我认为您正在使用 ActionBarActivity 或类似的方式来扩展您的活动,并且只有在使用 AppCompatActivity 进行扩展时才能使用此主题
我正在使用 appcompat 活动,所以,也许,这就是原因。我今天将发布活动代码以上是关于带有半透明闪屏的 Android 崩溃的主要内容,如果未能解决你的问题,请参考以下文章
利用 Android 4.4 KitKat 中的半透明状态栏