Android旧drawable未更新

时间:2017-04-27 22:27:28

标签: android

最后编辑

我试图在this guideline之后实施SplashScreen。所以我用图层列表设置了一个drawable并使用了一个图标,但是图标太大了所以我创建了一个更小的新文件。结果从未出现在我的应用程序中:我制作的第一个drawable总是出现,从不更新。

  • 我重命名了图片文件,可绘制的
  • 我重命名了那种风格 在清单中使用
  • 我清理了项目
  • 我重建了项目
  • 我 synchroinized
  • 我使用了Invalidate缓存/重启选项
  • 我更新了 Android Studio
  • 我移动了我的项目文件夹,创建了一个新文件夹 只复制粘贴java和xml文件,因为我当时就是 缓存文件将被删除

Nada,当我在手机上部署apk时,旧的drawable总是显示出来。 这是什么,哪个?我错过了什么?我在哪里可以找到缓存?我找了一个bin文件夹,我在一些论坛上看到我应该删除它,但它不在我的工作区中。

我在下面发布我的代码:

的AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="lu.intech.mcfc">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity
            android:name=".activity.InitActivity"
            android:theme="@style/SplashTheme">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".activity.LoginActivity" />
    </application>
</manifest>

styles.xml:

<resources>
    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>

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

splash_screen.xml:

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

    <item>
        <bitmap
            android:gravity="center"
            android:src="@drawable/logo_wega_100x31"/>
    </item>
</layer-list>

修改 我确实在另一部手机上试用了我的应用程序,它可以立即按预期运行。所以我猜这个问题出现在手机上。即使我每次再次测试时都卸载了应用程序,也会显示旧的drawable。除了卸载应用程序,我可以做些什么来清理手机上的缓存?

4 个答案:

答案 0 :(得分:0)

首先,尝试清理应用程序然后重建并重新启动它。

如果不起作用,请尝试清理,在手机上卸载,重建,然后重新启动。有时在没有清洁的情况下启动时会出现一些奇怪的错误。

答案 1 :(得分:0)

你需要清理系统缓存:

  1. 在主菜单上,choose File | Invalidate Caches/Restart。将显示“无效缓存”消息,通知您缓存将在下次启动时失效并重建。使用dialog to invalidate caches中的按钮,重启IntelliJ IDEA或两者。
  2. 手机上的应用程序卸载
  3. 再次运行项目。

答案 2 :(得分:0)

比照。我遇到的另一个类似问题:Android status bar hide/change color in splash screen

这不是我第一次遇到这种屏幕的缓存问题,它必须是没有布局和可绘制作为背景的特殊条件。我尝试在Android Studio中使缓存失效,我清理并重建了项目,我在手机上卸载了应用程序,但没有任何效果。因此,如果您使用此配置,只需尝试在另一部手机上运行您的应用,只需检查您的解决方案是否已经正常工作,只是不在您的设备上进行更新。

答案 3 :(得分:0)

我遇到同样的问题,但我猜它与Android版有关。 我在三星手机(Android 4.4.4)中进行了测试,并且 windowBackground 立即更新,但在索尼手机(Android 7.0)中它不是工作。
看起来像Android正试图通过保存一些应用程序状态来“更聪明”。 我确实尝试了您尝试的所有解决方案,并且:通过应用程序管理器 - &gt;清除缓存,清除数据并且......它仍然无法正常工作 只有一件事能让它发挥作用:重新启动设备,然后重建。
是的,我不确定用户在通过Play商店更新我们的应用时是否会遇到这个问题。这不方便,但它是我找到的唯一可行的解​​决方案。