Аргумент «путь» должен иметь тип string. Объект полученного типа - Cordova + Angular - PullRequest
0 голосов
/ 27 апреля 2020

Я создаю мобильное приложение из ранее созданного приложения angular. Я использовал этот учебник, который объясняет, как создать собственное приложение из angular, используя cordova. Я выполнил следующие шаги:

  • Установлен Cordova
  • Добавлены переменные среды
  • Добавлен Cordova в приложение
  • Создано приложение Cordova с использованием cordova create mobile, который создал проект cordova в <myprojectpath>/mobile
  • Создал программную ссылку www, которая перенаправляет в папку dist приложения
  • Добавлен android в качестве платформы (с использованием разрешений sudo) , не в состоянии сделать иначе)
  • Созданная сборка
  • проверила требования, используя cordova requirements, чтобы убедиться, что чего-то не хватает
  • run cordova run android в терминале (используя разрешения sudo , не может сделать иначе)

Это выдало мне следующую ошибку:

Аргумент "путь" должен иметь тип string. Полученный объект типа

Перед следующей ошибкой дал следующую информацию

Checking Java JDK and Android SDK versions  
ANDROID_SDK_ROOT=undefined (recommended setting)  
ANDROID_HOME=/home/<usr>/Android/Sdk (DEPRECATED)  
No target specified and no devices found, deploying to emulator  
No emulator specified, defaulting to Pixel_API_28

Добавление --verbose дало мне следующее:

The "path" argument must be of type string. Received type object
TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received type object
    at validateString (internal/validators.js:112:11)
    at Object.dirname (path.js:1129:5)
    at /var/www/html/employee_portal/mobile/platforms/android/cordova/lib/emulator.js:294:37
    at _fulfilled (/var/www/html/employee_portal/mobile/node_modules/q/q.js:854:54)
    at /var/www/html/employee_portal/mobile/node_modules/q/q.js:883:30
    at Promise.promise.promiseDispatch (/var/www/html/employee_portal/mobile/node_modules/q/q.js:816:13)
    at /var/www/html/employee_portal/mobile/node_modules/q/q.js:624:44
    at runSingle (/var/www/html/employee_portal/mobile/node_modules/q/q.js:137:13)
    at flush (/var/www/html/employee_portal/mobile/node_modules/q/q.js:125:13)
    at processTicksAndRejections (internal/process/task_queues.js:75:11)

У меня есть проверил несколько вопросов о стекопереходе, которые указывают на похожие проблемы, связанные с ioni c, такие как неопределенная ошибка пути и ошибка пути после обновления , но я не смог решить их с помощью этих решений. Я не уверен, почему это может происходить, потому что когда я запускаю cordova build, он создает apk без каких-либо проблем.

Я также попытался удалить папку node_modules и запустить установку npm в моей папке mobile, но мне это не помогло.

Я не уверен, почему эта ошибка и как ее решить

результат cordova requirements:

Requirements check results for android:
Java JDK: installed 1.8.0
Android SDK: installed true
Android target: installed android-29,android-28,android-27
Gradle: installed /opt/gradle/gradle-5.2.1/bin/gradle

версий платформы:

Installed platforms:
  android 8.1.0
Available platforms: 
  browser ^6.0.0
  electron ^1.0.0
  ios ^5.0.0
  osx ^5.0.0
  windows ^7.0.0

пакета. json моего проект Cordova :

{
  "name": "helloworld",
  "displayName": "HelloCordova",
  "version": "1.0.0",
  "description": "A sample Apache Cordova application that responds to the deviceready event.",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [
    "ecosystem:cordova"
  ],
  "author": "Apache Cordova Team",
  "license": "Apache-2.0",
  "dependencies": {
    "cordova-android": "^8.1.0"
  },
  "devDependencies": {
    "cordova-plugin-whitelist": "^1.3.4"
  },
  "cordova": {
    "plugins": {
      "cordova-plugin-whitelist": {}
    },
    "platforms": [
      "android"
    ]
  }
}

1 Ответ

0 голосов
/ 28 апреля 2020

Решено : после копания я обнаружил, что Cordova не смогла запустить эмулятор, поэтому я искал обходной путь и получил здесь , который попросил вручную запустите эмулятор, используя android studio, а затем запустите сборку. Работал как шарм.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...