我在 Android Studio 中下载并添加了“Nexus 5X API 26”到“您的虚拟设备”,这样 Cordova 至少有 1 个可能的目标可以运行。
但是,当我运行命令时
cordova run android
终端(在其他几行之后)响应:
BUILD SUCCESSFUL
Total time: 1.305 secs
Built the following apk(s):
/Users/karel/Cordova Projects/demo/platforms/android/build/outputs/apk/android-debug.apk
ANDROID_HOME=/Users/karel/Library/Android/sdk
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home
No target specified and no devices found, deploying to emulator
Error: Cannot read property 'replace' of undefined
当我从 Android Studio 中的应用程序运行模拟器时,模拟器运行良好,但在使用 cordova run 命令时却运行不正常 - 该命令适用于其他平台。
如果你能帮助我,那将不胜感激!
最佳答案
尝试以 API 25 而不是 26 为目标。
这里报告了问题和他的修复: https://forum.ionicframework.com/t/error-cannot-read-property-replace-of-undefined-android/93297/31
在文件 /platforms/android/cordova/lib/emulator.js 第 202 行:
var num = target.split('(API level ')[1].replace(')', '');
您需要将其替换为正则表达式搜索和提取:
var num = target.match(/\d+/)[0];
因为目标是 Android API 26 并且它试图用这个解析它:
var num = target.split('(API level ')[1].replace(')', '')
关于android - 为什么在 Android 中尝试运行 Cordova 应用程序时会出现此错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46146084/