当我尝试在我的 Android 设备上预览我的应用程序时显示错误
Posted
技术标签:
【中文标题】当我尝试在我的 Android 设备上预览我的应用程序时显示错误【英文标题】:Errors show when I try to preview my app on my android devices 【发布时间】:2019-12-07 21:24:48 【问题描述】:我正在尝试使用 Nativescript Sidekick 使用 angular/typescript 创建一个应用程序。
当我尝试在我的 android 设备上预览应用时,它只显示以下错误。
我已尝试在多个 Android 设备上多次运行预览。
只要我对 app.component.ts 文件进行更改,nativescript 预览应用就会开始显示以下错误列表
这个 sn-p 有效
import Component from "@angular/core";
@Component(
moduleId: module.id,
selector: "ns-app",
templateUrl: "app.component.html"
)
export class AppComponent
这个sn-p没有
import Component from "@angular/core";
@Component(
selector: "gr-login",
moduleId: module.id,
templateUrl: "./login/login.component.html"
)
export class AppComponent
来自设备 Marvin 的日志:Angular 正在开发模式下运行。调用 >enableProdMode() 以启用生产模式。 来自设备 Marvin 的日志:HMR:使用 hmr >hash 4a9d4dd775f015ffffecd 检查捆绑包的更新。 来自设备 Marvin 的日志:Angular 正在开发模式下运行。调用 >enableProdMode() 以启用生产模式。从设备记录 Marvin:HMR:↻ ./app/app.module.ts 来自设备 Marvin 的日志: HMR:使用 hmr 哈希 4a9d4dd775f015fffecd 成功应用更新。 应用程序是最新的。来自设备 Marvin 的日志:HMR:↻ ./app/app.component.ts 来自设备 Marvin 的日志:HMR:以下 模块已更新:来自设备 Marvin 的日志:HMR:正在检查 使用 hmr 哈希 c892cbd39be51a20e8ba 更新捆绑包。日志来自 设备 Marvin:HMR:更新了以下模块:日志来自 设备 Marvin: HMR: ↻ ./app/app.component.ts 来自设备的日志 马文:HMR:↻ ./app/app.component.html 来自设备的日志 马文:HMR:↻ ./app/login/login.component.html 来自 设备 Marvin: HMR: ↻ ./app/app.module.ts 来自设备的日志 Marvin:HMR:使用 hmr 哈希成功应用更新 c892cbd39be51a20e8ba。应用程序是最新的。来自设备 Marvin 的日志: Angular 正在开发模式下运行。调用 enableProdMode() 到 启用生产模式。来自设备 Marvin 的日志:未被捕获 “主”线程发生异常。调用js方法运行失败 错误:无法使用 entry.create() 函数创建视图。 堆栈跟踪: 框架:函数:'ZoneAwareError',文件:'file:///data/data/org.nativescript.preview/files/app/tns_modules/nativescript-angular/zone-js/dist/zone-nativescript.js', 行:1298,列:31 框架:函数:'',文件:'file:///data/data/org.nativescript.preview/files/app/tns_modules/tns-core-modules/ui/builder/builder.js', 行:45,列:13 框架:函数:'ActivityCallbacksImplementation.setActivityContent', 文件:'file:///data/data/org.nativescript.preview/files/app/tns_modules/tns-core-modules/ui/frame/frame.js', 行:985,列:32 框架:函数:'ActivityCallbacksImplementation.resetActivityContent', 文件:'file:///data/data/org.nativescript.preview/files/app/tns_modules/tns-core-modules/ui/frame/frame.js', 行:946,列:10 框架:函数:'_resetRootView',文件:'file:///data/data/org.nativescript.preview/files/app/tns_modules/tns-core-modules/application/application.js', 行:125,列:13 框架:函数:'NativeScriptPlatformRef._livesync',文件:'file:///data/data/org.nativescript.preview/files/app/tns_modules/nativescript-angular/platform-common.js', 行:268,列:19 框架:函数:'',文件:'file:///data/data/org.nativescript.preview/files/app/tns_modules/nativescript-angular/platform-common.js', 行:97,列:80 框架:函数:'ZoneDelegate.invokeTask',文件:'file:///data/data/org.nativescript.preview/files/app/tns_modules/nativescript-angular/zone-js/dist/zone-nativescript.js' , 行:421,列:23 框架:函数:'Zone.runTask',文件:'file:///data/data/org.nativescript.preview/files/app/tns_modules/nativescript-angular/zone-js/dist/zone-nativescript.js' , 行:188,列:39 框架:函数:'ZoneTask.invokeTask',文件:'file:///data/data/org.nativescript.preview/files/app/tns_modules/nativescript-angular/zone-js/dist/zone-nativescript.js' , 行:496,列:28 框架:函数:'ZoneTask.invoke',文件:'file:///data/data/org.nativescript.preview/files/app/tns_modules/nativescript-angular/zone-js/dist/zone-nativescript.js' , 行:485,列:40 框架:函数:'timer',文件:'file:///data/data/org.nativescript.preview/files/app/tns_modules/nativescript-angular/zone-js/dist/zone-nativescript.js', 行:1561,列:23 框架:函数:'invoke',文件:'file:///data/data/org.nativescript.preview/files/app/tns_modules/tns-core-modules/timer/timer.js', 行:19,列:45 框架:函数:'ZoneDelegate.invoke',文件:'file:///data/data/org.nativescript.preview/files/app/tns_modules/nativescript-angular/zone-js/dist/zone-nativescript.js' , 行:388,列:18 框架:函数:'Zone.runGuarded',文件:'file:///data/data/org.nativescript.preview/files/app/tns_modules/nativescript-angular/zone-js/dist/zone-nativescript.js' , 行:151,列:39 框架:函数:'',文件:'file:///data/data/org.nativescript.preview/files/app/tns_modules/nativescript-angular/zone-js/dist/zone-nativescript.js', 行:129,列:23 框架:函数:'run',文件:'file:///data/data/org.nativescript.preview/files/app/tns_modules/tns-core-modules/timer/timer.js', 行:23,列:7 在 com.tns.Runtime.callJSMethodNative(Native Method) 在 com.tns.Runtime.dispatchCallJSMethodNative(Runtime.java:1242) 在 com.tns.Runtime.callJSMethodImpl(Runtime.java:1122) 在 com.tns.Runtime.callJSMethod(Runtime.java:1109) 在 com.tns.Runtime.callJSMethod(Runtime.java:1089) 在 com.tns.Runtime.callJSMethod(Runtime.java:1081) 在 com.tns.gen.java.lang.Runnable.run(Runnable.java:17) 在 android.os.Handler.handleCallback(Handler.java:873) 在 android.os.Handler.dispatchMessage(Handler.java:99) 在 android.os.Looper.loop(Looper.java:193) 在 android.app.ActivityThread.main(ActivityThread.java:6863) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:537) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858) 来自设备 Marvin 的日志:Angular 正在开发模式下运行。调用 enableProdMode() 以启用生产模式。 来自设备 Marvin 的日志:HMR:使用 hmr 哈希 c0e7af62393125eaf0d7 检查捆绑包的更新。 来自设备 Marvin 的日志:HMR:↻ ./app/login/login.component.html 来自设备 Marvin 的日志:HMR:使用 hmr 哈希 c0e7af62393125eaf0d7 成功应用更新。应用程序是最新的。 来自设备 Marvin 的日志:Angular 正在开发模式下运行。调用 enableProdMode() 以启用生产模式。 来自设备 Marvin 的日志:HMR:↻ ./app/app.component.html 来自设备 Marvin 的日志:HMR:↻ ./app/app.module.ts 来自设备 Marvin 的日志:HMR:更新了以下模块: 来自设备 Marvin 的日志:HMR:↻ ./app/app.component.ts 来自设备 Marvin 的日志:“主”线程上发生未捕获的异常。 调用js方法运行失败 错误:使用 entry.create() 函数创建视图失败。
StackTrace: Frame: function:'ZoneAwareError', file:'file:///data/data/org.nativescript.preview/files/app/tns_modules/nativescript-angular/zone-js/dist/zone-nativescript.js',
行:1298,列:31 框架:函数:'',文件:'file:///data/data/org.nativescript.preview/files/app/tns_modules/tns-core-modules/ui/builder/builder.js', 行:45,列:13 框架:函数:'ActivityCallbacksImplementation.setActivityContent', 文件:'file:///data/data/org.nativescript.preview/files/app/tns_modules/tns-core-modules/ui/frame/frame.js', 行:985,列:32 框架:函数:'ActivityCallbacksImplementation.resetActivityContent', 文件:'file:///data/data/org.nativescript.preview/files/app/tns_modules/tns-core-modules/ui/frame/frame.js', 行:946,列:10 框架:函数:'_resetRootView',文件:'file:///data/data/org.nativescript.preview/files/app/tns_modules/tns-core-modules/application/application.js', 行:125,列:13 框架:函数:'NativeScriptPlatformRef._livesync',文件:'file:///data/data/org.nativescript.preview/files/app/tns_modules/nativescript-angular/platform-common.js', 行:268,列:19 框架:函数:'',文件:'file:///data/data/org.nativescript.preview/files/app/tns_modules/nativescript-angular/platform-common.js', 行:97,列:80 框架:函数:'ZoneDelegate.invokeTask',文件:'file:///data/data/org.nativescript.preview/files/app/tns_modules/nativescript-angular/zone-js/dist/zone-nativescript.js' , 行:421,列:23 框架:函数:'Zone.runTask',文件:'file:///data/data/org.nativescript.preview/files/app/tns_modules/nativescript-angular/zone-js/dist/zone-nativescript.js' , 行:188,列:39 框架:函数:'ZoneTask.invokeTask',文件:'file:///data/data/org.nativescript.preview/files/app/tns_modules/nativescript-angular/zone-js/dist/zone-nativescript.js' , 行:496,列:28 框架:函数:'ZoneTask.invoke',文件:'file:///data/data/org.nativescript.preview/files/app/tns_modules/nativescript-angular/zone-js/dist/zone-nativescript.js' , 行:485,列:40 框架:函数:'timer',文件:'file:///data/data/org.nativescript.preview/files/app/tns_modules/nativescript-angular/zone-js/dist/zone-nativescript.js', 行:1561,列:23 框架:函数:'invoke',文件:'file:///data/data/org.nativescript.preview/files/app/tns_modules/tns-core-modules/timer/timer.js', 行:19,列:45 框架:函数:'ZoneDelegate.invoke',文件:'file:///data/data/org.nativescript.preview/files/app/tns_modules/nativescript-angular/zone-js/dist/zone-nativescript.js' , 行:388,列:18 框架:函数:'Zone.runGuarded',文件:'file:///data/data/org.nativescript.preview/files/app/tns_modules/nativescript-angular/zone-js/dist/zone-nativescript.js' , 行:151,列:39 框架:函数:'',文件:'file:///data/data/org.nativescript.preview/files/app/tns_modules/nativescript-angular/zone-js/dist/zone-nativescript.js', 行:129,列:23 框架:函数:'run',文件:'file:///data/data/org.nativescript.preview/files/app/tns_modules/tns-core-modules/timer/timer.js', 行:23,列:7 在 com.tns.Runtime.callJSMethodNative(Native Method) 在 com.tns.Runtime.dispatchCallJSMethodNative(Runtime.java:1242) 在 com.tns.Runtime.callJSMethodImpl(Runtime.java:1122) 在 com.tns.Runtime.callJSMethod(Runtime.java:1109) 在 com.tns.Runtime.callJSMethod(Runtime.java:1089) 在 com.tns.Runtime.callJSMethod(Runtime.java:1081) 在 com.tns.gen.java.lang.Runnable.run(Runnable.java:17) 在 android.os.Handler.handleCallback(Handler.java:873) 在 android.os.Handler.dispatchMessage(Handler.java:99) 在 android.os.Looper.loop(Looper.java:193) 在 android.app.ActivityThread.main(ActivityThread.java:6863) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:537) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858) 来自设备 Marvin 的日志:Angular 正在开发模式下运行。调用 enableProdMode() 以启用生产模式。 来自设备 Marvin 的日志:“主”线程上发生未捕获的异常。 无法启动活动 ComponentInfoorg.nativescript.preview/com.tns.NativeScriptActivity: com.tns.NativeScriptException:调用 js 方法 onCreate 失败 错误:缺少主条目。应用程序无法启动。验证应用引导程序。
StackTrace: java.lang.RuntimeException: Unable to start activity ComponentInfoorg.nativescript.preview/com.tns.NativeScriptActivity:
com.tns.NativeScriptException: 调用 js 方法 onCreate 失败 错误:缺少主条目。应用程序无法启动。验证应用引导程序。 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3037) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3172) 在 android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78) 在 android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108) 在 android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1906) 在 android.os.Handler.dispatchMessage(Handler.java:106) 在 android.os.Looper.loop(Looper.java:193) 在 android.app.ActivityThread.main(ActivityThread.java:6863) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:537) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858) 引起:com.tns.NativeScriptException:调用js方法onCreate失败 错误:缺少主条目。应用程序无法启动。验证应用引导程序。 在 com.tns.Runtime.callJSMethodNative(Native Method) 在 com.tns.Runtime.dispatchCallJSMethodNative(Runtime.java:1242) 在 com.tns.Runtime.callJSMethodImpl(Runtime.java:1122) 在 com.tns.Runtime.callJSMethod(Runtime.java:1109) 在 com.tns.Runtime.callJSMethod(Runtime.java:1089) 在 com.tns.Runtime.callJSMethod(Runtime.java:1081) 在 com.tns.NativeScriptActivity.onCreate(NativeScriptActivity.java:20) 在 android.app.Activity.performCreate(Activity.java:7149) 在 android.app.Activity.performCreate(Activity.java:7140) 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1288) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3017) ... 11 更多
【问题讨论】:
【参考方案1】:在项目的main.ts文件中添加enableProdMode()。
点赞:-
import platformNativeScriptDynamic from "nativescript-angular/platform";
import AppModule from "./app/app.module";
import enableProdMode from "@angular/core";
enableProdMode();
platformNativeScriptDynamic().bootstrapModule(AppModule);
app.component.ts:-
import Component from "@angular/core";
@Component(
moduleId: module.id,
selector: "ns-app",
templateUrl: "app.component.html"
)
export class AppComponent
login.component.ts:-
import Component from "@angular/core";
@Component(
moduleId: module.id,
selector: "ns-login",
templateUrl: "./login.component.html"
)
export class LoginComponent
【讨论】:
以上是关于当我尝试在我的 Android 设备上预览我的应用程序时显示错误的主要内容,如果未能解决你的问题,请参考以下文章
我正在尝试在我的设备上获得真实的广告,但应用在我的 Android 应用上显示测试广告
我的 Android 应用程序在模拟器上运行,但无法在我的 android 设备上运行