【问题标题】:Android old drawable not updatedAndroid旧的drawable未更新
【发布时间】:2017-04-27 22:27:27
【问题描述】:

最后编辑

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

  • 我重命名了图片文件,drawable
  • 我将样式重命名为 在清单中使用
  • 我清理了项目
  • 我重建了项目
  • 我 同步
  • 我使用了无效缓存/重启选项
  • 我更新了 安卓工作室
  • 我移动了我的项目文件夹,创建了一个新文件夹并 只复制粘贴了 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/splash_screen
  • 尝试卸载应用并重新安装
  • 我都做了,请看我的编辑。

标签: android


【解决方案1】:

我面临同样的问题,但 我猜它与 Android 版本有关。 我在 Samsung 手机 (Android 4.4.4) 中进行了测试,windowBackground 会立即更新,但在 Sony 手机 (Android 7.0) 中却没有在职的。
似乎 Android 正试图通过保存应用程序的某些状态来变得“更智能”。 我确实尝试了您尝试过的所有解决方案,另外:通过 Application Manager -> Clear Cache, Clear Data而且...它仍然无法正常工作
只有一件事可以让它工作:重新启动设备,然后重建。
是的,我不确定用户在通过 Play 商店更新我们的应用程序时是否会遇到这个问题。这并不方便,但这是我找到的唯一可行的解​​决方案。

【讨论】:

  • 更新:只需重启设备即可,无需重建。我不知道为什么!
【解决方案2】:

你需要清理系统缓存:

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

【讨论】:

    【解决方案3】:

    首先,尝试清理您的应用,然后重新构建并重新启动它。

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

    【讨论】:

      【解决方案4】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-05-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-01-15
        • 1970-01-01
        • 2018-02-01
        • 1970-01-01
        相关资源
        最近更新 更多