尝试在Android中运行Cordova应用程序时,为什么会出现此错误?

时间:2017-09-10 22:20:12

标签: android cordova android-emulator android-sdk-tools

我下载并添加了#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运行命令时却没有运行 - 这对其他平台有效。

如果你能帮助我,那将非常感激!

1 个答案:

答案 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(')', '')