Visitar URL original
android-elevation property crashes on Android 5.0 devices · Issue #7532 · NativeScript/NativeScript · GitHub
Skip to content

android-elevation property crashes on Android 5.0 devices #7532

Description

@hosikiti

Environment

  • CLI: 5.4.2
  • Cross-platform modules: 5.4.3
  • Android Runtime: 5.4.0

Describe the bug
With recently added CSS property, android-elevation and android-dynamic-elevation-offset, an Android 5.0.2 (Lollipop) device crashes on app startup. The same app seems runs correctly on devices after Android 6.0. (we tested Android 6.0 and Android 9.0). And even on Android 5.1.1 device, the app works without crash. So we assume that there are some issues regarding to setting elevation on only Android 5.0.

To Reproduce
Just add following style to the Button element.

Button {
	background-color: transparent;
	margin: 0 0;
	padding: 0 0;
	android-elevation: 0;
	android-dynamic-elevation-offset: 0;
}

Expected behavior
No crash.

Crash log

07-17 12:23:38.146 27527-27527/? A/art: art/runtime/check_jni.cc:65] JNI DETECTED ERROR IN APPLICATION: can't call void android.view.View.setTranslationZ(float) on null object
07-17 12:23:38.146 27527-27527/? A/art: art/runtime/check_jni.cc:65]     in call to CallVoidMethodV
07-17 12:23:38.146 27527-27527/? A/art: art/runtime/check_jni.cc:65]     from void android.animation.PropertyValuesHolder.nCallFloatMethod(java.lang.Object, long, float)
07-17 12:23:38.146 27527-27527/? A/art: art/runtime/check_jni.cc:65] "main" prio=5 tid=1 Runnable
07-17 12:23:38.146 27527-27527/? A/art: art/runtime/check_jni.cc:65]   | group="main" sCount=0 dsCount=0 obj=0x73e69000 self=0xb5007800
07-17 12:23:38.146 27527-27527/? A/art: art/runtime/check_jni.cc:65]   | sysTid=27527 nice=0 cgrp=apps sched=0/0 handle=0xb6f49ec8
07-17 12:23:38.146 27527-27527/? A/art: art/runtime/check_jni.cc:65]   | state=R schedstat=( 19977186121 3784867579 13162 ) utm=1936 stm=61 core=3 HZ=100
07-17 12:23:38.146 27527-27527/? A/art: art/runtime/check_jni.cc:65]   | stack=0xbe41c000-0xbe41e000 stackSize=8MB
07-17 12:23:38.146 27527-27527/? A/art: art/runtime/check_jni.cc:65]   | held mutexes= "mutator lock"(shared held)
07-17 12:23:38.146 27527-27527/? A/art: art/runtime/check_jni.cc:65]   native: #00 pc 00004640  /system/lib/libbacktrace_libc++.so (UnwindCurrent::Unwind(unsigned int, ucontext*)+23)
07-17 12:23:38.146 27527-27527/? A/art: art/runtime/check_jni.cc:65]   native: #01 pc 00002e8d  /system/lib/libbacktrace_libc++.so (Backtrace::Unwind(unsigned int, ucontext*)+8)
07-17 12:23:38.146 27527-27527/? A/art: art/runtime/check_jni.cc:65]   native: #02 pc 0023f37f  /system/lib/libart.so (art::DumpNativeStack(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, int, char const*, art::mirror::ArtMethod*, BacktraceMap*)+70)
07-17 12:23:38.146 27527-27527/? A/art: art/runtime/check_jni.cc:65]   native: #03 pc 00224b23  /system/lib/libart.so (art::Thread::Dump(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, BacktraceMap*) const+154)
07-17 12:23:38.146 27527-27527/? A/art: art/runtime/check_jni.cc:65]   native: #04 pc 000afb7d  /system/lib/libart.so (art::JniAbort(char const*, char const*)+584)
07-17 12:23:38.151 27527-27527/? A/art: art/runtime/check_jni.cc:65]   native: #05 pc 000b02b5  /system/lib/libart.so (art::JniAbortF(char const*, char const*, ...)+60)
07-17 12:23:38.151 27527-27527/? A/art: art/runtime/check_jni.cc:65]   native: #06 pc 000b0ce7  /system/lib/libart.so (art::ScopedCheck::CheckVirtualMethod(_jobject*, _jmethodID*)+418)
07-17 12:23:38.151 27527-27527/? A/art: art/runtime/check_jni.cc:65]   native: #07 pc 000ba8b7  /system/lib/libart.so (art::CheckJNI::CallVoidMethodV(_JNIEnv*, _jobject*, _jmethodID*, std::__va_list)+70)
07-17 12:23:38.151 27527-27527/? A/art: art/runtime/check_jni.cc:65]   native: #08 pc 0005d27f  /system/lib/libandroid_runtime.so (???)
07-17 12:23:38.151 27527-27527/? A/art: art/runtime/check_jni.cc:65]   native: #09 pc 000718e5  /system/framework/arm/boot.oat (Java_android_animation_PropertyValuesHolder_nCallFloatMethod__Ljava_lang_Object_2JF+132)
07-17 12:23:38.151 27527-27527/? A/art: art/runtime/check_jni.cc:65]   at android.animation.PropertyValuesHolder.nCallFloatMethod(Native method)
07-17 12:23:38.151 27527-27527/? A/art: art/runtime/check_jni.cc:65]   at android.animation.PropertyValuesHolder.access$400(PropertyValuesHolder.java:38)
07-17 12:23:38.151 27527-27527/? A/art: art/runtime/check_jni.cc:65]   at android.animation.PropertyValuesHolder$FloatPropertyValuesHolder.setAnimatedValue(PropertyValuesHolder.java:1296)
07-17 12:23:38.151 27527-27527/? A/art: art/runtime/check_jni.cc:65]   at android.animation.ObjectAnimator.animateValue(ObjectAnimator.java:952)
07-17 12:23:38.151 27527-27527/? A/art: art/runtime/check_jni.cc:65]   at android.animation.ValueAnimator.animationFrame(ValueAnimator.java:1207)
07-17 12:23:38.151 27527-27527/? A/art: art/runtime/check_jni.cc:65]   at android.animation.ValueAnimator.doAnimationFrame(ValueAnimator.java:1248)
07-17 12:23:38.151 27527-27527/? A/art: art/runtime/check_jni.cc:65]   at android.animation.ValueAnimator$AnimationHandler.doAnimationFrame(ValueAnimator.java:659)
07-17 12:23:38.151 27527-27527/? A/art: art/runtime/check_jni.cc:65]   at android.animation.ValueAnimator$AnimationHandler.run(ValueAnimator.java:682)
07-17 12:23:38.151 27527-27527/? A/art: art/runtime/check_jni.cc:65]   at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767)
07-17 12:23:38.151 27527-27527/? A/art: art/runtime/check_jni.cc:65]   at android.view.Choreographer.doCallbacks(Choreographer.java:580)
07-17 12:23:38.151 27527-27527/? A/art: art/runtime/check_jni.cc:65]   at android.view.Choreographer.doFrame(Choreographer.java:549)
07-17 12:23:38.151 27527-27527/? A/art: art/runtime/check_jni.cc:65]   at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753)
07-17 12:23:38.151 27527-27527/? A/art: art/runtime/check_jni.cc:65]   at android.os.Handler.handleCallback(Handler.java:739)
07-17 12:23:38.151 27527-27527/? A/art: art/runtime/check_jni.cc:65]   at android.os.Handler.dispatchMessage(Handler.java:95)
07-17 12:23:38.151 27527-27527/? A/art: art/runtime/check_jni.cc:65]   at android.os.Looper.loop(Looper.java:211)
07-17 12:23:38.151 27527-27527/? A/art: art/runtime/check_jni.cc:65]   at android.app.ActivityThread.main(ActivityThread.java:5335)
07-17 12:23:38.151 27527-27527/? A/art: art/runtime/check_jni.cc:65]   at java.lang.reflect.Method.invoke!(Native method)
07-17 12:23:38.151 27527-27527/? A/art: art/runtime/check_jni.cc:65]   at java.lang.reflect.Method.invoke(Method.java:372)
07-17 12:23:38.151 27527-27527/? A/art: art/runtime/check_jni.cc:65]   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1016)
07-17 12:23:38.151 27527-27527/? A/art: art/runtime/check_jni.cc:65]   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:811)
07-17 12:23:38.151 27527-27527/? A/art: art/runtime/check_jni.cc:65] 
07-17 12:23:38.170 27527-27527/? A/art: art/runtime/runtime.cc:290] Runtime aborting...
07-17 12:23:38.170 27527-27527/? A/art: art/runtime/runtime.cc:290] Aborting thread:
07-17 12:23:38.170 27527-27527/? A/art: art/runtime/runtime.cc:290] "main" prio=5 tid=1 Native
07-17 12:23:38.170 27527-27527/? A/art: art/runtime/runtime.cc:290]   | group="" sCount=0 dsCount=0 obj=0x73e69000 self=0xb5007800
07-17 12:23:38.170 27527-27527/? A/art: art/runtime/runtime.cc:290]   | sysTid=27527 nice=0 cgrp=apps sched=0/0 handle=0xb6f49ec8
07-17 12:23:38.170 27527-27527/? A/art: art/runtime/runtime.cc:290]   | state=R schedstat=( 20005584092 3793574136 13227 ) utm=1938 stm=62 core=2 HZ=100
07-17 12:23:38.170 27527-27527/? A/art: art/runtime/runtime.cc:290]   | stack=0xbe41c000-0xbe41e000 stackSize=8MB
07-17 12:23:38.170 27527-27527/? A/art: art/runtime/runtime.cc:290]   | held mutexes= "abort lock" "mutator lock"(shared held)
07-17 12:23:38.170 27527-27527/? A/art: art/runtime/runtime.cc:290]   native: #00 pc 00004640  /system/lib/libbacktrace_libc++.so (UnwindCurrent::Unwind(unsigned int, ucontext*)+23)
07-17 12:23:38.170 27527-27527/? A/art: art/runtime/runtime.cc:290]   native: #01 pc 00002e8d  /system/lib/libbacktrace_libc++.so (Backtrace::Unwind(unsigned int, ucontext*)+8)
07-17 12:23:38.170 27527-27527/? A/art: art/runtime/runtime.cc:290]   native: #02 pc 0023f37f  /system/lib/libart.so (art::DumpNativeStack(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, int, char const*, art::mirror::ArtMethod*, BacktraceMap*)+70)
07-17 12:23:38.170 27527-27527/? A/art: art/runtime/runtime.cc:290]   native: #03 pc 00224b23  /system/lib/libart.so (art::Thread::Dump(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, BacktraceMap*) const+154)
07-17 12:23:38.170 27527-27527/? A/art: art/runtime/runtime.cc:290]   native: #04 pc 00214da5  /system/lib/libart.so (art::AbortState::DumpThread(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, art::Thread*)+24)
07-17 12:23:38.170 27527-27527/? A/art: art/runtime/runtime.cc:290]   native: #05 pc 00215055  /system/lib/libart.so (art::AbortState::Dump(std::__1::basic_ostream<char, std::__1::char_traits<char> >&)+436)
07-17 12:23:38.170 27527-27527/? A/art: art/runtime/runtime.cc:290]   native: #06 pc 00215229  /system/lib/libart.so (art::Runtime::Abort()+72)
07-17 12:23:38.170 27527-27527/? A/art: art/runtime/runtime.cc:290]   native: #07 pc 000a65bb  /system/lib/libart.so (art::LogMessage::~LogMessage()+1322)
07-17 12:23:38.170 27527-27527/? A/art: art/runtime/runtime.cc:290]   native: #08 pc 000afd5b  /system/lib/libart.so (art::JniAbort(char const*, char const*)+1062)
07-17 12:23:38.170 27527-27527/? A/art: art/runtime/runtime.cc:290]   native: #09 pc 000b02b5  /system/lib/libart.so (art::JniAbortF(char const*, char const*, ...)+60)
07-17 12:23:38.170 27527-27527/? A/art: art/runtime/runtime.cc:290]   native: #10 pc 000b0ce7  /system/lib/libart.so (art::ScopedCheck::CheckVirtualMethod(_jobject*, _jmethodID*)+418)
07-17 12:23:38.170 27527-27527/? A/art: art/runtime/runtime.cc:290]   native: #11 pc 000ba8b7  /system/lib/libart.so (art::CheckJNI::CallVoidMethodV(_JNIEnv*, _jobject*, _jmethodID*, std::__va_list)+70)
07-17 12:23:38.170 27527-27527/? A/art: art/runtime/runtime.cc:290]   native: #12 pc 0005d27f  /system/lib/libandroid_runtime.so (???)
07-17 12:23:38.170 27527-27527/? A/art: art/runtime/runtime.cc:290]   native: #13 pc 000718e5  /system/framework/arm/boot.oat (Java_android_animation_PropertyValuesHolder_nCallFloatMethod__Ljava_lang_Object_2JF+132)
07-17 12:23:38.170 27527-27527/? A/art: art/runtime/runtime.cc:290]   at android.animation.PropertyValuesHolder.nCallFloatMethod(Native method)
07-17 12:23:38.170 27527-27527/? A/art: art/runtime/runtime.cc:290]   at android.animation.PropertyValuesHolder.access$400(PropertyValuesHolder.java:38)
07-17 12:23:38.170 27527-27527/? A/art: art/runtime/runtime.cc:290]   at android.animation.PropertyValuesHolder$FloatPropertyValuesHolder.setAnimatedValue(PropertyValuesHolder.java:1296)
07-17 12:23:38.170 27527-27527/? A/art: art/runtime/runtime.cc:290]   at android.animation.ObjectAnimator.animateValue(ObjectAnimator.java:952)
07-17 12:23:38.170 27527-27527/? A/art: art/runtime/runtime.cc:290]   at android.animation.ValueAnimator.animationFrame(ValueAnimator.java:1207)
07-17 12:23:38.170 27527-27527/? A/art: art/runtime/runtime.cc:290]   at android.animation.ValueAnimator.doAnimationFrame(ValueAnimator.java:1248)
07-17 12:23:38.170 27527-27527/? A/art: art/runtime/runtime.cc:290]   at android.animation.ValueAnimator$AnimationHandler.doAnimationFrame(ValueAnimator.java:659)
07-17 12:23:38.170 27527-27527/? A/art: art/runtime/runtime.cc:290]   at android.animation.ValueAnimator$AnimationHandler.run(ValueAnimator.java:682)
07-17 12:23:38.170 27527-27527/? A/art: art/runtime/runtime.cc:290]   at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767)
07-17 12:23:38.170 27527-27527/? A/art: art/runtime/runtime.cc:290]   at android.view.Choreographer.doCallbacks(Choreographer.java:580)
07-17 12:23:38.170 27527-27527/? A/art: art/runtime/runtime.cc:290]   at android.view.Choreographer.doFrame(Choreographer.java:549)
07-17 12:23:38.170 27527-27527/? A/art: art/runtime/runtime.cc:290]   at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753)
07-17 12:23:38.170 27527-27527/? A/art: art/runtime/runtime.cc:290]   at android.os.Handler.handleCallback(Handler.java:739)
07-17 12:23:38.170 27527-27527/? A/art: art/runtime/runtime.cc:290]   at android.os.Handler.dispatchMessage(Handler.java:95)
07-17 12:23:38.170 27527-27527/? A/art: art/runtime/runtime.cc:290]   at android.os.Looper.loop(Looper.java:211)
07-17 12:23:38.170 27527-27527/? A/art: art/runtime/runtime.cc:290]   at android.app.ActivityThread.main(ActivityThread.java:5335)
07-17 12:23:38.170 27527-27527/? A/art: art/runtime/runtime.cc:290]   at java.lang.reflect.Method.invoke!(Native method)
07-17 12:23:38.170 27527-27527/? A/art: art/runtime/runtime.cc:290]   at java.lang.reflect.Method.invoke(Method.java:372)
07-17 12:23:38.170 27527-27527/? A/art: art/runtime/runtime.cc:290]   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1016)
07-17 12:23:38.170 27527-27527/? A/art: art/runtime/runtime.cc:290]   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:811)
07-17 12:23:38.170 27527-27527/? A/art: art/runtime/runtime.cc:290] Dumping all threads without appropriate locks held: thread list lock mutator lock
07-17 12:23:38.170 27527-27527/? A/art: art/runtime/runtime.cc:290] 
07-17 12:23:38.170 27527-27527/? A/libc: Fatal signal 6 (SIGABRT), code -6 in tid 27527 (te.app.xz.local)

[Test Result]
Xperia Z3 SO-01G, Android 5.0.2 ==> CRASH
HTC Nexus 9, Android 5.0 => CRASH

Xperia Z5 SOV32, Android 5.1.1 => Works
Xperia Z5 Premium SO-03H, Android 6.0 => Works
Google Pixel 3, Android 9 => Works

Activity

  1. tsonevn commented on Jul 17, 2019

    @tsonevn
    Contributor

    Hi @hosikiti,
    I tested the described scenario on simulators with Android API level 21(5.0) and Android 22(5.1) as well as on LG Nexus device with Android API level 21. However, I was unable to recreate a similar problem. For your convenience, I am attaching the project that I used for testing. Also, I am attaching a video, which demonstrates the behaviour on my side.
    Can you check if you will be able to recreate the issue with the attached project?
    project.zip
    demo_video.mov.zip

  2. hosikiti commented on Jul 17, 2019

    @hosikiti
    Author

    @tsonevn Thanks for your reply. We will try to check if the issue happens in your project.

    BTW, the error happening in the Android 5 devices looks very similar to the following one described here:
    https://stackoverflow.com/questions/40928788/cant-call-void-android-view-view-setelevationfloat-on-null-object-in-lapism-s

  3. tsonevn commented on Jul 22, 2019

    @tsonevn
    Contributor

    @hosikiti,
    Can you recreate the issue with the attached project in my comment above?

  4. hosikiti commented on Jul 23, 2019

    @hosikiti
    Author

    @tsonevn We tried your project but could not recreate the issue, unfortunately. Probably our project has some problems. So I will close this issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions