Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 动画矢量可绘制不使用API 15_Android_Xml_Animation_Android Vectordrawable - Fatal编程技术网

Android 动画矢量可绘制不使用API 15

Android 动画矢量可绘制不使用API 15,android,xml,animation,android-vectordrawable,Android,Xml,Animation,Android Vectordrawable,我一直在尝试在API级别为15的设备上运行可绘制的动画向量 以下是我的动画向量“animated_feedback.xml”: 以下是我的简历: apply plugin: 'com.android.application' android { compileSdkVersion 23 buildToolsVersion "23.0.3" defaultConfig { applicationId "karim.com.testinganimation

我一直在尝试在API级别为15的设备上运行可绘制的动画向量

以下是我的动画向量“animated_feedback.xml”:

以下是我的简历:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.3"

    defaultConfig {
        applicationId "karim.com.testinganimation"
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"

        vectorDrawables.useSupportLibrary = true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:23.4.0'
}
当运行此代码时,您应该看到一个白色的圆圈,上面有一个蓝色的环,它应该先淡入然后淡出

我在API>21设备上运行了这段代码,它运行得非常完美

当我在带有API 15的设备上运行它时,动画一开始就会出现以下崩溃:

D/PropertyValuesHolder(19300): Can't find native method using JNI, use reflectionjava.lang.NoSuchMethodError: no method with name='set' signature='(F)V' in class Landroid/support/graphics/drawable/VectorDrawableCompat$VFullPath;
E/PropertyValuesHolder(19300): Couldn't find setter/getter for property null with value type float
E/PropertyValuesHolder(19300): Couldn't find no-arg method for property null: java.lang.NoSuchMethodException: get []
D/AndroidRuntime(19300): Shutting down VM
W/dalvikvm(19300): threadid=1: thread exiting with uncaught exception (group=0x40a9e1f8)
E/AndroidRuntime(19300): FATAL EXCEPTION: main
E/AndroidRuntime(19300): java.lang.NullPointerException
E/AndroidRuntime(19300):    at android.animation.PropertyValuesHolder.setupSetterAndGetter(PropertyValuesHolder.java:513)
E/AndroidRuntime(19300):    at android.animation.ObjectAnimator.initAnimation(ObjectAnimator.java:392)
E/AndroidRuntime(19300):    at android.animation.ValueAnimator.setCurrentPlayTime(ValueAnimator.java:544)
E/AndroidRuntime(19300):    at android.animation.ValueAnimator.start(ValueAnimator.java:934)
E/AndroidRuntime(19300):    at android.animation.ValueAnimator.start(ValueAnimator.java:957)
E/AndroidRuntime(19300):    at android.animation.ObjectAnimator.start(ObjectAnimator.java:370)
E/AndroidRuntime(19300):    at android.animation.AnimatorSet$DependencyListener.startIfReady(AnimatorSet.java:705)
E/AndroidRuntime(19300):    at android.animation.AnimatorSet$DependencyListener.onAnimationEnd(AnimatorSet.java:659)
E/AndroidRuntime(19300):    at android.animation.ValueAnimator.endAnimation(ValueAnimator.java:1040)
E/AndroidRuntime(19300):    at android.animation.ValueAnimator.access$900(ValueAnimator.java:49)
E/AndroidRuntime(19300):    at android.animation.ValueAnimator$AnimationHandler.handleMessage(ValueAnimator.java:675)
E/AndroidRuntime(19300):    at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(19300):    at android.os.Looper.loop(Looper.java:137)
E/AndroidRuntime(19300):    at android.app.ActivityThread.main(ActivityThread.java:4424)
E/AndroidRuntime(19300):    at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(19300):    at java.lang.reflect.Method.invoke(Method.java:511)
E/AndroidRuntime(19300):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
E/AndroidRuntime(19300):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
E/AndroidRuntime(19300):    at dalvik.system.NativeStart.main(Native Method)
W/ActivityManager(  164):   Force finishing activity karim.com.testinganimation/.MainActivity

如何解决此问题,因为在API级别为15的设备上运行非常关键。

我没有API 15设备或模拟器来测试此问题,但在我看来,它对您的中间objectAnimator不满意:

 <objectAnimator
    android:duration="700"/>

错误消息的某些部分,如“找不到属性null的setter/getter”,表明它正在尝试设置动画制作程序,但由于没有动画制作程序应该制作什么动画的详细信息,因此它正在崩溃

假设此objectAnimator的目的只是使动画向量在淡出之前暂停,我建议尝试以下操作:

<objectAnimator
    android:propertyName="fillAlpha"
    android:valueType="floatType"
    android:valueFrom="1f"
    android:valueTo="1f"
    android:duration="700"/>

ImageView feedbackUI = (ImageView) findViewById(R.id.feedback_ui);
feedbackUI.setImageResource(R.drawable.animated_feedback);

Drawable animation = feedbackUI.getDrawable();
if (animation instanceof Animatable) {
    feedbackUI.setVisibility(View.VISIBLE);
    ((Animatable) animation).start();
}
apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.3"

    defaultConfig {
        applicationId "karim.com.testinganimation"
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"

        vectorDrawables.useSupportLibrary = true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:23.4.0'
}
D/PropertyValuesHolder(19300): Can't find native method using JNI, use reflectionjava.lang.NoSuchMethodError: no method with name='set' signature='(F)V' in class Landroid/support/graphics/drawable/VectorDrawableCompat$VFullPath;
E/PropertyValuesHolder(19300): Couldn't find setter/getter for property null with value type float
E/PropertyValuesHolder(19300): Couldn't find no-arg method for property null: java.lang.NoSuchMethodException: get []
D/AndroidRuntime(19300): Shutting down VM
W/dalvikvm(19300): threadid=1: thread exiting with uncaught exception (group=0x40a9e1f8)
E/AndroidRuntime(19300): FATAL EXCEPTION: main
E/AndroidRuntime(19300): java.lang.NullPointerException
E/AndroidRuntime(19300):    at android.animation.PropertyValuesHolder.setupSetterAndGetter(PropertyValuesHolder.java:513)
E/AndroidRuntime(19300):    at android.animation.ObjectAnimator.initAnimation(ObjectAnimator.java:392)
E/AndroidRuntime(19300):    at android.animation.ValueAnimator.setCurrentPlayTime(ValueAnimator.java:544)
E/AndroidRuntime(19300):    at android.animation.ValueAnimator.start(ValueAnimator.java:934)
E/AndroidRuntime(19300):    at android.animation.ValueAnimator.start(ValueAnimator.java:957)
E/AndroidRuntime(19300):    at android.animation.ObjectAnimator.start(ObjectAnimator.java:370)
E/AndroidRuntime(19300):    at android.animation.AnimatorSet$DependencyListener.startIfReady(AnimatorSet.java:705)
E/AndroidRuntime(19300):    at android.animation.AnimatorSet$DependencyListener.onAnimationEnd(AnimatorSet.java:659)
E/AndroidRuntime(19300):    at android.animation.ValueAnimator.endAnimation(ValueAnimator.java:1040)
E/AndroidRuntime(19300):    at android.animation.ValueAnimator.access$900(ValueAnimator.java:49)
E/AndroidRuntime(19300):    at android.animation.ValueAnimator$AnimationHandler.handleMessage(ValueAnimator.java:675)
E/AndroidRuntime(19300):    at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(19300):    at android.os.Looper.loop(Looper.java:137)
E/AndroidRuntime(19300):    at android.app.ActivityThread.main(ActivityThread.java:4424)
E/AndroidRuntime(19300):    at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(19300):    at java.lang.reflect.Method.invoke(Method.java:511)
E/AndroidRuntime(19300):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
E/AndroidRuntime(19300):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
E/AndroidRuntime(19300):    at dalvik.system.NativeStart.main(Native Method)
W/ActivityManager(  164):   Force finishing activity karim.com.testinganimation/.MainActivity
 <objectAnimator
    android:duration="700"/>
<objectAnimator
    android:propertyName="fillAlpha"
    android:valueType="floatType"
    android:valueFrom="1f"
    android:valueTo="1f"
    android:duration="700"/>