System.err:TypeError:无法读取未定义的属性“onNavigatingTo”

Posted

技术标签:

【中文标题】System.err:TypeError:无法读取未定义的属性“onNavigatingTo”【英文标题】:System.err: TypeError: Cannot read property 'onNavigatingTo' of undefined 【发布时间】:2019-01-30 20:01:44 【问题描述】:

我的 nativescript 应用程序在第一次运行时成功运行,没有任何错误,但是当我保存任何文件而没有任何更改或小的更改时,我的应用程序崩溃并显示以下信息。

08-24 13:32:36.684 3595 3595 E androidRuntime: at com.tns.Runtime.callJSMethodNative(Native Method) 08-24 13:32:36.684 3595 3595 E AndroidRuntime: at com.tns.Runtime.dispatchCallJSMethodNative(Runtime.java:1116) 08-24 13:32:36.684 3595 3595 E AndroidRuntime:
at com.tns.Runtime.callJSMethodImpl(Runtime.java:996) 08-24 13:32:36.684 3595 3595 E AndroidRuntime: at com.tns.Runtime.callJSMethod(Runtime.java:983) 08-24 13:32:36.684 3595 3595 E AndroidRuntime: at com.tns.Runtime.callJSMethod(Runtime.java:967) 08-24
13:32:36.684 3595 3595 E AndroidRuntime: at com.tns.Runtime.callJSMethod(Runtime.java:959) System.err: com.tns.NativeScriptException: System.err: Calling js method onViewAttachedToWindow failed System.err: System.err: TypeError: Cannot read property 'onNavigatingTo'
of undefined System.err: File: "file:///data/data/org.nativescript.TekmoTs/files/app/tns_modules/tns-core-modules/ui/frame/frame-common.js, line: 262, column: 36 System.err: System.err: StackTrace: System.err: Frame: function:'FrameBase._onNavigatingTo',
file:'file:///data/data/org.nativescript.TekmoTs/files/app/tns_modules/tns-core-modules/ui/frame/frame-common.js', line: 262, column: 37 System.err: Frame: function:'FrameBase.performNavigation', file:'file:///data/data/org.nativescript.TekmoTs/files/app/tns_modules/tns-core-modules/ui/frame/frame-common.js',
line: 234, column: 14 System.err: Frame: function:'FrameBase._processNextNavigationEntry', file:'file:///data/data/org.nativescript.TekmoTs/files/app/tns_modules/tns-core-modules/ui/frame/frame-common.js', line: 227, column: 22 System.err: Frame: function:'Frame._processNextNavigationEntry',
file:'file:///data/data/org.nativescript.TekmoTs/files/app/tns_modules/tns-core-modules/ui/frame/frame.js', line: 138, column: 58 System.err: Frame: function:'Frame._onAttachedToWindow', file:'file:///data/data/org.nativescript.TekmoTs/files/app/tns_modules/tns-core-modules/ui/frame/frame.js',
line: 114, column: 14 System.err: Frame: function:'AttachListener.onViewAttachedToWindow', file:'file:///data/data/org.nativescript.TekmoTs/files/app/tns_modules/tns-core-modules/ui/frame/frame.js', line: 38, column: 27 System.err: System.err: at com.tns.Runtime.callJSMethodNative(Native
Method) System.err: at com.tns.Runtime.dispatchCallJSMethodNative(Runtime.java:1116) System.err: at com.tns.Runtime.callJSMethodImpl(Runtime.java:996) System.err: at com.tns.Runtime.callJSMethod(Runtime.java:983) System.err: at com.tns.Runtime.callJSMethod(Runtime.java:967)
System.err: at com.tns.Runtime.callJSMethod(Runtime.java:959) System.err: at com.tns.gen.java.lang.Object_frame_32_36_AttachListener.onViewAttachedToWindow(Object_frame_32_36_AttachListener.java:17) System.err: at android.view.View.dispatchAttachedToWindow(View.java:18358)
System.err: at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3397) System.err: at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3404) System.err: at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3404)
System.err: at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1761) System.err: at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1460) System.err: at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7183) System.err:
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:949) System.err: at android.view.Choreographer.doCallbacks(Choreographer.java:761) System.err: at android.view.Choreographer.doFrame(Choreographer.java:696) System.err: at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:935)
System.err: at android.os.Handler.handleCallback(Handler.java:873) System.err: at android.os.Handler.dispatchMessage(Handler.java:99) System.err: at android.os.Looper.loop(Looper.java:193) System.err: at android.app.ActivityThread.main(ActivityThread.java:6669)
System.err: at java.lang.reflect.Method.invoke(Native Method) System.err: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)

app-root.xml 文件内容如下:

<Frame defaultPage="views/contact-us/contact-us">
</Frame>

文件结构如下: ├───app │ ├───App_Resources │ │ ├───Android │ │ └───ios │ └───views │ ├───about │ ├───contact-us │ └───home ├───hooks ...

contact-us.xml 文件的内容如下:

<Page xmlns="http://www.nativescript.org/tns.xsd" navigatingTo="onNavigatedTo"> <ScrollView> <StackLayout> <Label text="Contact us by submitting a message below." textWrap="true" /> <TextField hint="Enter a subject..." /> <TextView hint="Enter a Message..."/> <Button text="Submit" tap="onTap" /> </StackLayout> </ScrollView> </Page>

不是:如果我用 ctrl+c 停止应用程序然后 y 然后用 tns run android 重新启动我的应用程序,它会成功运行而没有任何错误。

【问题讨论】:

【参考方案1】:

我通过完全删除平台文件夹并使用 tns run android 重新运行应用程序解决了我的问题。

好的,我发现了导致此问题的真正错误,每当我将 app-root.xml'e defaultPage 属性更改为另一个页面时都会发生错误。我认为这是 nativescript watch 的问题。

在应用运行时将 app-root.xml 的 defaultPage 属性更改为另一个页面会导致应用崩溃。

【讨论】:

以上是关于System.err:TypeError:无法读取未定义的属性“onNavigatingTo”的主要内容,如果未能解决你的问题,请参考以下文章

System.err:调用 js 方法 onCreate 失败 - System.err:错误:缺少主条目。应用程序无法启动。验证应用引导程序

TypeError:无法在 gitlab 中读取未定义的属性(读取“读取”)

TypeError:无法读取未定义的属性(读取“问题”)

TypeError:无法读取未定义的属性(读取“国家”)

TypeError:无法读取未定义的属性(读取“名称”)

TypeError:无法读取属性“集合”[重复]