Android 运行调试变量时开始时出现白色屏幕

Android 运行调试变量时开始时出现白色屏幕,android,debugging,android-studio,android-build,Android,Debugging,Android Studio,Android Build,最近,我注意到运行我的应用程序的debug是我第一次运行的变体-这意味着第一次安装它时,一个白色屏幕出现在启动屏幕之前,它在Nexus 6上停留了相当长的时间~15秒 如果清除数据并再次运行,也会发生这种情况 起初我认为这是任何补丁的副作用,所以我回到了正在出版的修订版 但同样的事情发生了。虽然如果我从播放安装,它工作正常 所以,我运行了一个“发布”版本,瞧!它工作正常。这显然不是由应用程序类或任何其他代码更改引起的,因为这也会发生在发行版中 这显然也不同于其他地方提到的简短的白屏问题,如()所

最近,我注意到运行我的应用程序的
debug
是我第一次运行的变体-这意味着第一次安装它时,一个白色屏幕出现在启动屏幕之前,它在Nexus 6上停留了相当长的时间
~15秒

如果清除数据并再次运行,也会发生这种情况

起初我认为这是任何补丁的副作用,所以我回到了正在出版的修订版

但同样的事情发生了。虽然如果我从
播放安装
它工作正常

所以,我运行了一个“发布”版本,瞧!它工作正常。这显然不是由应用程序类或任何其他代码更改引起的,因为这也会发生在发行版中

这显然也不同于其他地方提到的简短的白屏问题,如()所示: 因此,当我按建议将
透明主题
应用于
飞溅
时,点击应用程序后,手机屏幕冻结,相同时间内没有触摸,然后飞溅显示


不知道为什么更改为
debug
会导致如此大的问题。为什么只有第一次跑步

这是因为您使用的是Android studio instant run

您可以这样禁用它:

<style name="SplashTheme" parent="Theme.AppCompat.NoActionBar">
    <item name="android:windowBackground">@drawable/background_splash</item>
</style>

属性->即时运行->取消选中“启用即时运行…”


根据我的经验,当您使用应用程序时,请忽略这一点,但当您向客户/测试人员提供构建时,请进行签名构建,并在您的设备中进行检查,以解决此问题。尽管如此,我还是找到了调试的完美解决方案,直到您可以使用它。(这只发生在API 24及更高版本中)。

制作一个名为background\u splash的可绘制图形

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    <item
        android:drawable="@color/gray"/>

    <item>
        <bitmap
            android:gravity="center"
            android:src="@mipmap/ic_launcher"/>
    </item>

</layer-list>

然后在“样式”中添加如下样式:

<style name="SplashTheme" parent="Theme.AppCompat.NoActionBar">
    <item name="android:windowBackground">@drawable/background_splash</item>
</style>

@可绘制/背景\u飞溅
然后在清单中的活动中添加样式

<activity
    android:name=".SplashActivity"
    android:theme="@style/SplashTheme">

您还可以检查android性能模式:

如果您在清单文件中放入了
android:debuggable=“false”
换成

android:debuggable="true"

属性->即时运行->取消选中“启用即时运行…”

属性->即时运行->取消选中“启用即时运行…”

关闭
即时运行
检查此链接可能会有所帮助。您可以通过设置自定义主题来处理此链接。不要直接设置启动我不明白您想说什么。但是禁用ing instant run解决了这个问题。是的,我的意思是从android studio生成签名版本。这是一项额外的工作。尽管问题和解决方案已经确定。不,这是错误的,我使用的是android studio 2.2.3,首先我还以为这是因为instant run,但事实并非如此。对不起,兄弟。@AJay disabling instant run为我解决了问题,所以我接受了。