анимированный вектор как значок уведомления в android 10: недопустимый идентификатор ресурса # 0x7f060001 типа # 0x1d - PullRequest
0 голосов
/ 15 апреля 2020

с использованием анимированного вектора в качестве Notification.setSmallIcon работает нормально, в android 7 работает нормально, однако происходит сбой при android 10

2020-04-15 19:07:58.092 2982-2982/? E/Icon: Unable to load resource 0x7f06005b from pkg=io.devguard.carrier
    android.content.res.Resources$NotFoundException: Drawable io.devguard.carrier:drawable/ic_logo_anim with resource ID #0x7f06005b
    Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x7f060001 type #0x1d is not valid
        at android.content.res.Resources.loadXmlResourceParser(Resources.java:2287)
        at android.content.res.Resources.getAnimation(Resources.java:1200)
        at android.animation.AnimatorInflater.loadAnimator(AnimatorInflater.java:125)
        at android.graphics.drawable.AnimatedVectorDrawable$AnimatedVectorDrawableState$PendingAnimator.newInstance(AnimatedVectorDrawable.java:897)
        at android.graphics.drawable.AnimatedVectorDrawable$AnimatedVectorDrawableState.inflatePendingAnimators(AnimatedVectorDrawable.java:873)
        at android.graphics.drawable.AnimatedVectorDrawable.applyTheme(AnimatedVectorDrawable.java:692)
        at android.content.res.ResourcesImpl.loadDrawable(ResourcesImpl.java:674)
        at android.content.res.Resources.getDrawableForDensity(Resources.java:906)
        at android.content.res.Resources.getDrawable(Resources.java:845)
        at android.graphics.drawable.Icon.loadDrawableInner(Icon.java:370)
        at android.graphics.drawable.Icon.loadDrawable(Icon.java:323)
        at android.graphics.drawable.Icon.loadDrawableAsUser(Icon.java:434)
        at com.android.systemui.statusbar.StatusBarIconView.getIcon(StatusBarIconView.java:407)
        at com.android.systemui.statusbar.StatusBarIconView.getIcon(StatusBarIconView.java:391)
        at com.android.systemui.statusbar.StatusBarIconView.updateDrawable(StatusBarIconView.java:369)
        at com.android.systemui.statusbar.StatusBarIconView.set(StatusBarIconView.java:329)
        at com.android.systemui.statusbar.notification.collection.NotificationEntry.createIcons(NotificationEntry.java:341)
        at com.android.systemui.statusbar.notification.collection.NotificationRowBinderImpl.inflateViews(NotificationRowBinderImpl.java:141)
        at com.android.systemui.statusbar.notification.NotificationEntryManager.addNotificationInternal(NotificationEntryManager.java:397)
        at com.android.systemui.statusbar.notification.NotificationEntryManager.addNotification(NotificationEntryManager.java:412)
        at com.google.android.systemui.statusbar.NotificationEntryManagerGoogle.addNotification(NotificationEntryManagerGoogle.java:81)
        at com.android.systemui.statusbar.NotificationListener.lambda$onNotificationPosted$1$NotificationListener(NotificationListener.java:123)
        at com.android.systemui.statusbar.-$$Lambda$NotificationListener$NvFmU0XrVPuc5pizHcri9I0apkw.run(Unknown Source:6)

любое использование objectAnimator, кажется, вызывает это.

 <animated-vector
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:aapt="http://schemas.android.com/aapt"
    android:drawable="@drawable/ic_logo"
>

    <target android:name="l1">
        <aapt:attr name="android:animation">
            <set>
                <objectAnimator
                    android:propertyName="translateX"
                    android:startOffset="2000"
                    android:duration="2000"
                    android:valueFrom="-88"
                    android:valueTo="-6.692406692406692"
                    android:valueType="floatType"
                    android:interpolator="@android:interpolator/fast_out_slow_in"/>

Как правильно использовать анимированные значки уведомлений, которые работают на android> = 7?

библиотеки включены (хотя я думаю, что это не имеет значения, так как это система загружает значок)

defaultConfig {
        vectorDrawables.useSupportLibrary = true
}
...