我下载并添加了#34; Nexus 5X API 26"到你的虚拟设备"在Android Studio中,Cordova至少有一个可能的目标。
但是,当我运行命令
时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运行命令时却没有运行 - 这对其他平台有效。
如果你能帮助我,那将非常感激!
答案 0 :(得分:1)
尝试定位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(')', '')