Я создаю мобильное приложение из ранее созданного приложения 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"
]
}
}