Runtime error when using text-shadow CSS property on Android
When I use text-shadow on a ui-label 1.3.41 element, I get a runtime error on Android (works on iOS):
Cannot read properties of undefined (reading 'toDevicePixels')
Here is some example CSS:
text-shadow: 0 1 2 black;
Hmmm I just found the same issue when using padding-right on a ui-label element on Android.
@rdlauer please share simple example and logs (full stack)
Sure, it's pretty simple for me to replicate. Here is the text-shadow example:
<lbl:Label autoFontSize="true" maxFontSize="24" text="{{ user_name }}" textWrap="false" class="text-shadow" />
and the CSS class:
.text-shadow {
text-shadow: 0 1 2 black;
}
@farfromrefug Just realized I never sent you the stack trace:
System.err: An uncaught Exception occurred on "main" thread.
System.err: Calling js method onCreateView failed
System.err: TypeError: Cannot read properties of undefined (reading 'toDevicePixels')
System.err:
System.err: StackTrace:
System.err: [paddingRight:setNative](file:///data/data/com.groovapp.app/files/app/vendor.mjs:6223:175)
System.err: at applyAllNativeSetters(file:///data/data/com.groovapp.app/files/app/vendor.mjs:34151:37)
System.err: at initNativeView(file:///data/data/com.groovapp.app/files/app/vendor.mjs:34076:9)
System.err: at onResumeNativeUpdates(file:///data/data/com.groovapp.app/files/app/vendor.mjs:35255:68)
System.err: at onResumeNativeUpdates(file:///data/data/com.groovapp.app/files/app/vendor.mjs:5980:15)
System.err: at onResumeNativeUpdates(file:///data/data/com.groovapp.app/files/app/vendor.mjs:6238:15)
System.err: at _resumeNativeUpdates(file:///data/data/com.groovapp.app/files/app/vendor.mjs:34697:18)
System.err: at onLoaded(file:///data/data/com.groovapp.app/files/app/vendor.mjs:34652:14)
System.err: at onLoaded(file:///data/data/com.groovapp.app/files/app/vendor.mjs:37326:15)
System.err: at onLoaded(file:///data/data/com.groovapp.app/files/app/vendor.mjs:36086:15)
System.err: at (file:///data/data/com.groovapp.app/files/app/vendor.mjs:34738:74)
System.err: at callFunctionWithSuper(file:///data/data/com.groovapp.app/files/app/vendor.mjs:34732:9)
System.err: at callLoaded(file:///data/data/com.groovapp.app/files/app/vendor.mjs:34738:14)
System.err: at loadView(file:///data/data/com.groovapp.app/files/app/vendor.mjs:34904:18)
System.err: at (file:///data/data/com.groovapp.app/files/app/vendor.mjs:34654:18)
System.err: at eachChildView(file:///data/data/com.groovapp.app/files/app/vendor.mjs:47258:28)
System.err: at eachChild(file:///data/data/com.groovapp.app/files/app/vendor.mjs:38083:14)
System.err: at onLoaded(file:///data/data/com.groovapp.app/files/app/vendor.mjs:34653:14)
System.err: at onLoaded(file:///data/data/com.groovapp.app/files/app/vendor.mjs:37326:15)
System.err: at onLoaded(file:///data/data/com.groovapp.app/files/app/vendor.mjs:36086:15)
System.err: at (file:///data/data/com.groovapp.app/files/app/vendor.mjs:34738:74)
System.err: at callFunctionWithSuper(file:///data/data/com.groovapp.app/files/app/vendor.mjs:34732:9)
System.err: at callLoaded(file:///data/data/com.groovapp.app/files/app/vendor.mjs:34738:14)
System.err: at loadView(file:///data/data/com.groovapp.app/files/app/vendor.mjs:34904:18)
System.err: at (file:///data/data/com.groovapp.app/files/app/vendor.mjs:34654:18)
System.err: at eachChildView(file:///data/data/com.groovapp.app/files/app/vendor.mjs:47258:28)
System.err: at eachChild(file:///data/data/com.groovapp.app/files/app/vendor.mjs:38083:14)
System.err: at onLoaded(file:///data/data/com.groovapp.app/files/app/vendor.mjs:34653:14)
System.err: at onLoaded(file:///data/data/com.groovapp.app/files/app/vendor.mjs:37326:15)
System.err: at onLoaded(file:///data/data/com.groovapp.app/files/app/vendor.mjs:36086:15)
System.err: at (file:///data/data/com.groovapp.app/files/app/vendor.mjs:34738:74)
System.err: at callFunctionWithSuper(file:///data/data/com.groovapp.app/files/app/vendor.mjs:34732:9)
System.err: at callLoaded(file:///data/data/com.groovapp.app/files/app/vendor.mjs:34738:14)
System.err: at loadView(file:///data/data/com.groovapp.app/files/app/vendor.mjs:34904:18)
System.err: at (file:///data/data/com.groovapp.app/files/app/vendor.mjs:34654:18)
System.err: at eachChildView(file:///data/data/com.groovapp.app/files/app/vendor.mjs:32034:13)
System.err: at eachChildView(file:///data/data/com.groovapp.app/files/app/vendor.mjs:50149:15)
System.err: at eachChild(file:///data/data/com.groovapp.app/files/app/vendor.mjs:38083:14)
System.err: at onLoaded(file:///data/data/com.groovapp.app/files/app/vendor.mjs:34653:14)
System.err: at onLoaded(file:///data/data/com.groovapp.app/files/app/vendor.mjs:37326:15)
System.err: at onLoaded(file:///data/data/com.groovapp.app/files/app/vendor.mjs:36086:15)
System.err: at onLoaded(file:///data/data/com.groovapp.app/files/app/vendor.mjs:49950:15)
System.err: at (file:///data/data/com.groovapp.app/files/app/vendor.mjs:34738:74)
System.err: at callFunctionWithSuper(file:///data/data/com.groovapp.app/files/app/vendor.mjs:34732:9)
System.err: at callLoaded(file:///data/data/com.groovapp.app/files/app/vendor.mjs:34738:14)
System.err: at loadView(file:///data/data/com.groovapp.app/files/app/vendor.mjs:34904:18)
System.err: at _addViewCore(file:///data/data/com.groovapp.app/files/app/vendor.mjs:34895:18)
System.err: at _addView(file:///data/data/com.groovapp.app/files/app/vendor.mjs:34880:14)
System.err: at onCreateView(file:///data/data/com.groovapp.app/files/app/vendor.mjs:42003:23)
System.err: at onCreateView(file:///data/data/com.groovapp.app/files/app/vendor.mjs:40384:32)
System.err: at com.tns.Runtime.callJSMethodNative(Native Method)
System.err: at com.tns.Runtime.dispatchCallJSMethodNative(Runtime.java:1384)
System.err: at com.tns.Runtime.callJSMethodImpl(Runtime.java:1270)
System.err: at com.tns.Runtime.callJSMethod(Runtime.java:1257)
System.err: at com.tns.Runtime.callJSMethod(Runtime.java:1235)
System.err: at com.tns.Runtime.callJSMethod(Runtime.java:1231)
System.err: at com.tns.FragmentClass.onCreateView(FragmentClass.java:55)
System.err: at androidx.fragment.app.Fragment.performCreateView(Fragment.java:3119)
System.err: at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:577)
System.err: at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:286)
System.err: at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:2214)
System.err: at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:2109)
System.err: at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:2052)
System.err: at androidx.fragment.app.FragmentManager$5.run(FragmentManager.java:703)
System.err: at android.os.Handler.handleCallback(Handler.java:995)
System.err: at android.os.Handler.dispatchMessage(Handler.java:103)
System.err: at android.os.Looper.loopOnce(Looper.java:248)
System.err: at android.os.Looper.loop(Looper.java:338)
System.err: at android.app.ActivityThread.main(ActivityThread.java:9067)
System.err: at java.lang.reflect.Method.invoke(Native Method)
System.err: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:593)
System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:932)
@rdlauer you are using Nativescript v9?
Yes
FYI @farfromrefug I'm pretty sure this is the fix that is needed. I'm not as familiar with the NativeScript internals though:
Instead of:
import { Length } from '@nativescript/core/ui/styling/style-properties';
// ...
Length.toDevicePixels(value, 0)
It should be this for v9:
import { Utils } from '@nativescript/core';
// ...
Utils.layout.toDevicePixels(value, 0)
@farfromrefug I'm still pretty stuck on this issue. Do you know if this is actually a bug or maybe it's a new problem w/ my code?
@rdlauer it is actually a bug in N i think (v9 is messy) because i dont even have import { Length } from '@nativescript/core/ui/styling/style-properties'; in the code anymore.
Yet i fixed it in this plugin. Hopefully it should work for you in the new version (up in 10 min max)
EDIT: in fact the plugin code is correct! It should work with NS v9