迁移到NativeScript 6.0后在Android上运行的问题

时间:2019-11-29 17:11:17

标签: angular2-nativescript

我们有一个Nativescript Angular应用程序,该应用程序已经几个月没有更新,并且已经迁移到NativeScript6。

运行tns run android时,apk正在构建并发送到设备,但在命令行界面却出现黑屏错误和以下内容:

System.err: An uncaught Exception occurred on "main" thread.
System.err: Unable to start activity ComponentInfo{org.nativescript.MyApp/com.tns.NativeScriptActivity}: com.tns.NativeScriptException: Calling js method onCreate failed
System.err: Error: Main entry is missing. App cannot be started. Verify app bootstrap.
System.err:
System.err: StackTrace:
System.err: java.lang.RuntimeException: Unable to start activity ComponentInfo{org.nativescript.MyApp/com.tns.NativeScriptActivity}: com.tns.NativeScriptException: Calling js method onCreate failed
System.err: Error: Main entry is missing. App cannot be started. Verify app bootstrap.
System.err:     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2957)
System.err:     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3032)
System.err:     at android.app.ActivityThread.-wrap11(Unknown Source:0)
System.err:     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1696)
System.err:     at android.os.Handler.dispatchMessage(Handler.java:105)
System.err:     at android.os.Looper.loop(Looper.java:164)
System.err:     at android.app.ActivityThread.main(ActivityThread.java:6944)
System.err:     at java.lang.reflect.Method.invoke(Native Method)
System.err:     at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
System.err: Caused by: com.tns.NativeScriptException: Calling js method onCreate failed
System.err: Error: Main entry is missing. App cannot be started. Verify app bootstrap.
System.err:     at com.tns.Runtime.callJSMethodNative(Native Method)
System.err:     at com.tns.Runtime.dispatchCallJSMethodNative(Runtime.java:1242)
System.err:     at com.tns.Runtime.callJSMethodImpl(Runtime.java:1122)
System.err:     at com.tns.Runtime.callJSMethod(Runtime.java:1109)
System.err:     at com.tns.Runtime.callJSMethod(Runtime.java:1089)
System.err:     at com.tns.Runtime.callJSMethod(Runtime.java:1081)
System.err:     at com.tns.NativeScriptActivity.onCreate(NativeScriptActivity.java:19)
System.err:     at android.app.Activity.performCreate(Activity.java:7183)
System.err:     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1220)
System.err:     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2910)
System.err:     ... 9 more

这是package.json:

{
  "description": "NativeScript Application",
  "license": "SEE LICENSE IN <your-license-filename>",
  "readme": "NativeScript Application",
  "repository": "<fill-your-repository-here>",
  "nativescript": {
    "id": "org.nativescript.MyApp",
    "tns-android": {
      "version": "6.2.0"
    }
  },
  "scripts": {
    "lint": "tslint \"app/**/*.ts\""
  },
  "dependencies": {
    "@angular/animations": "8.0.0",
    "@angular/common": "8.0.0",
    "@angular/compiler": "8.0.0",
    "@angular/core": "8.0.0",
    "@angular/forms": "8.0.0",
    "@angular/http": "8.0.0-beta.10",
    "@angular/platform-browser": "8.0.0",
    "@angular/platform-browser-dynamic": "8.0.0",
    "@angular/router": "8.0.0",
    "nativescript-angular": "8.0.2",
    "nativescript-camera": "^4.0.2",
    "nativescript-drop-down": "^4.0.1",
    "nativescript-imagepicker": "^6.0.4",
    "nativescript-modal-datetimepicker": "^1.1.4",
    "nativescript-theme-core": "~1.0.4",
    "nativescript-toast": "^2.0.0",
    "nativescript-ui-listview": "7.0.0",
    "reflect-metadata": "~0.1.10",
    "rxjs": "~6.4.0",
    "tns-core-modules": "6.0.1",
    "zone.js": "0.9.1"
  },
  "devDependencies": {
    "@angular-devkit/core": "~7.3.0",
    "@angular/compiler-cli": "8.0.0",
    "@ngtools/webpack": "8.0.0",
    "babel-traverse": "6.26.0",
    "babel-types": "6.26.0",
    "babylon": "6.18.0",
    "clean-webpack-plugin": "~1.0.1",
    "codelyzer": "~4.5.0",
    "copy-webpack-plugin": "~4.6.0",
    "css-loader": "~2.1.0",
    "extract-text-webpack-plugin": "~3.0.2",
    "lazy": "1.0.11",
    "nativescript-dev-webpack": "1.0.1",
    "nativescript-worker-loader": "~0.9.0",
    "raw-loader": "~1.0.0",
    "resolve-url-loader": "~3.0.0",
    "sass-loader": "~7.1.0",
    "tslint": "~5.12.1",
    "typescript": "3.4.5",
    "uglifyjs-webpack-plugin": "~2.1.1",
    "webpack": "~4.29.1",
    "webpack-bundle-analyzer": "~3.0.3",
    "webpack-cli": "~3.2.3",
    "webpack-sources": "~1.3.0",
    "node-sass": "4.12.0"
  }
}

这些依赖项很旧,因此请尝试以下操作来更新所有内容(备份原始package.json): ncu -u 它执行以下操作:

 @angular/animations                  8.0.0  →   8.2.14
 @angular/common                      8.0.0  →   8.2.14
 @angular/compiler                    8.0.0  →   8.2.14
 @angular/core                        8.0.0  →   8.2.14
 @angular/forms                       8.0.0  →   8.2.14
 @angular/platform-browser            8.0.0  →   8.2.14
 @angular/platform-browser-dynamic    8.0.0  →   8.2.14
 @angular/router                      8.0.0  →   8.2.14
 nativescript-angular                 8.0.2  →   8.20.3
 nativescript-drop-down              ^4.0.1  →   ^5.0.4
 nativescript-imagepicker            ^6.0.4  →   ^7.1.0
 nativescript-theme-core             ~1.0.4  →  ~2.0.24
 nativescript-ui-listview             7.0.0  →    8.0.1
 rxjs                                ~6.4.0  →   ~6.5.3
 tns-core-modules                     6.0.1  →    6.2.3
 zone.js                              0.9.1  →   0.10.2
 @angular-devkit/core                ~7.3.0  →  ~8.3.20
 @angular/compiler-cli                8.0.0  →   8.2.14
 @ngtools/webpack                     8.0.0  →   8.3.20
 clean-webpack-plugin                ~1.0.1  →   ~3.0.0
 codelyzer                           ~4.5.0  →   ~5.2.0
 copy-webpack-plugin                 ~4.6.0  →   ~5.0.5
 css-loader                          ~2.1.0  →   ~3.2.0
 nativescript-dev-webpack             1.0.1  →    1.3.0
 nativescript-worker-loader          ~0.9.0  →  ~0.10.0
 raw-loader                          ~1.0.0  →   ~4.0.0
 resolve-url-loader                  ~3.0.0  →   ~3.1.1
 sass-loader                         ~7.1.0  →   ~8.0.0
 tslint                             ~5.12.1  →  ~5.20.1
 typescript                           3.4.5  →    3.7.2
 uglifyjs-webpack-plugin             ~2.1.1  →   ~2.2.0
 webpack                            ~4.29.1  →  ~4.41.2
 webpack-bundle-analyzer             ~3.0.3  →   ~3.6.0
 webpack-cli                         ~3.2.3  →  ~3.3.10
 webpack-sources                     ~1.3.0  →   ~1.4.3
 node-sass                           4.12.0  →   4.13.0

然后做了tns run android,这是输出:

Preparing project...
File change detected. Starting incremental webpack compilation...

webpack is watching the files…

Hash: 20eb6148e8a0814b11eb
Version: webpack 4.29.6
Time: 6917ms
Built at: 11/29/2019 17:08:03
                     Asset       Size   Chunks             Chunk Names
                 bundle.js   73.1 KiB   bundle  [emitted]  bundle
     fonts/FontAwesome.ttf    176 KiB           [emitted]
fonts/FontAwesome2 (2).ttf   39.4 KiB           [emitted]
    fonts/FontAwesome2.ttf    176 KiB           [emitted]
    fonts/FontAwesomem.ttf    162 KiB           [emitted]
            images/add.png  214 bytes           [emitted]
     images/background.jpg    251 KiB           [emitted]
         images/delete.png  409 bytes           [emitted]
        images/fe_icon.png   2.49 KiB           [emitted]
           images/logo.png   79.9 KiB           [emitted]
    images/logout27x27.png  205 bytes           [emitted]
    images/logout36x36.png  226 bytes           [emitted]
     images/no_receipt.jpg   3.36 KiB           [emitted]
     images/no_receipt.png   1.87 KiB           [emitted]
            images/pdf.jpg   5.81 KiB           [emitted]
           images/test.jpg    302 KiB           [emitted]
              package.json  182 bytes           [emitted]
                runtime.js   71.4 KiB  runtime  [emitted]  runtime
       tns-java-classes.js    0 bytes           [emitted]
                 vendor.js   3.54 MiB   vendor  [emitted]  vendor
Entrypoint bundle = runtime.js vendor.js bundle.js
[./app.scss] 23.2 KiB {bundle} [built]
[./main.ts] 1.17 KiB {bundle} [built]
[./package.json] 166 bytes {bundle} [optional] [built]
    + 171 hidden modules

ERROR in ./app.scss
Module not found: Error: Can't resolve './nativescript-theme-core/css/core.light.css' in 'c:\Users\JoeSmith\apps\MyApp\app'
 @ ./app.scss 3:10-116
 @ ../node_modules/nativescript-dev-webpack/load-application-css-angular.js
 @ ./main.ts

ERROR in app/modal-datepicker/modal-datepicker.component.ts(16,6): error TS2554: Expected 2 arguments, but got 1.
app/shared/status-bar-util.ts(18,19): error TS2339: Property 'getter' does not exist on type 'typeof ios'.

Webpack compilation complete. Watching for file changes.
Webpack build done!
Project successfully prepared (android)
Building project...
Gradle build...
         + setting applicationId
         + applying user-defined configuration from C:\Users\JoeSmith\apps\MyApp\app\App_Resources\Android\app.gradle
         Applying settings from C:\Users\JoeSmith\apps\MyApp\app\App_Resources\Android\settings.json
         + using andorid X library androidx.legacy:legacy-support-v4:1.0.0
         + adding nativescript runtime package dependency: nativescript-optimized-with-inspector
         + adding aar plugin dependency: C:\Users\JoeSmith\apps\MyApp\node_modules\nativescript-camera\platforms\android\nativescript_camera.aar
         + adding aar plugin dependency: C:\Users\JoeSmith\apps\MyApp\node_modules\nativescript-ui-listview\platforms\android\TNSListView-release.aar
         + adding aar plugin dependency: C:\Users\JoeSmith\apps\MyApp\node_modules\nativescript-ui-core\platforms\android\TNSCore-release.aar
         + adding aar plugin dependency: C:\Users\JoeSmith\apps\MyApp\node_modules\tns-core-modules-widgets\platforms\android\widgets-release.aar
Project successfully built.
The build result is located at: c:\Users\JoeSmith\apps\MyApp\platforms\android\app\build\outputs\apk\debug\app-debug.apk
Installing on device 520031d8ee2715d9...
Successfully installed on device with identifier '520031d8ee2715d9'.
Restarting application on device 520031d8ee2715d9...
Successfully synced application org.nativescript.MyApp on device 520031d8ee2715d9.
JS: HMR: Hot Module Replacement Enabled. Waiting for signal.
System.err: An uncaught Exception occurred on "main" thread.
System.err: Unable to start activity ComponentInfo{org.nativescript.MyApp/com.tns.NativeScriptActivity}: com.tns.NativeScriptException: Calling js method onCreate failed
System.err: Error: Main entry is missing. App cannot be started. Verify app bootstrap.
System.err:
System.err: StackTrace:
System.err: java.lang.RuntimeException: Unable to start activity ComponentInfo{org.nativescript.MyApp/com.tns.NativeScriptActivity}: com.tns.NativeScriptException: Calling js method onCreate failed
System.err: Error: Main entry is missing. App cannot be started. Verify app bootstrap.
System.err:     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2957)
System.err:     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3032)
System.err:     at android.app.ActivityThread.-wrap11(Unknown Source:0)
System.err:     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1696)
System.err:     at android.os.Handler.dispatchMessage(Handler.java:105)
System.err:     at android.os.Looper.loop(Looper.java:164)
System.err:     at android.app.ActivityThread.main(ActivityThread.java:6944)
System.err:     at java.lang.reflect.Method.invoke(Native Method)
System.err:     at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
System.err: Caused by: com.tns.NativeScriptException: Calling js method onCreate failed
System.err: Error: Main entry is missing. App cannot be started. Verify app bootstrap.
System.err:     at com.tns.Runtime.callJSMethodNative(Native Method)
System.err:     at com.tns.Runtime.dispatchCallJSMethodNative(Runtime.java:1242)
System.err:     at com.tns.Runtime.callJSMethodImpl(Runtime.java:1122)
System.err:     at com.tns.Runtime.callJSMethod(Runtime.java:1109)
System.err:     at com.tns.Runtime.callJSMethod(Runtime.java:1089)
System.err:     at com.tns.Runtime.callJSMethod(Runtime.java:1081)
System.err:     at com.tns.NativeScriptActivity.onCreate(NativeScriptActivity.java:19)
System.err:     at android.app.Activity.performCreate(Activity.java:7183)
System.err:     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1220)
System.err:     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2910)
System.err:     ... 9 more

这仍然存在System.err: Error: Main entry is missing. App cannot be started. Verify app bootstrap.

我在GitHub上了解到Webpack编译错误可能会导致这种情况,但我不知道如何解决。

有什么想法吗?谢谢。

0 个答案:

没有答案