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

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

我在 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/

相关文章:

Android Realm copyToRealmOrUpdate 更新现有字段

javascript - Phonegap 中的点击事件

javascript - Framework7 : Open the same page and stack it in page history

Android模拟器不会关闭

Android 模拟器 - 意外的 '-prop' 值

java - Dagger不生成子组件创建方法

android - 将位图添加到 Android 中的 View

android相机预览回调正在非常缓慢地绘制叠加 View

javascript - Azure 移动服务 - table.read().done(function (results)) 返回未定义的值

安卓:你的CPU不支持VT-x