Cordova android emulator“;无法读取属性';更换';“未定义”的定义;

Cordova android emulator“;无法读取属性';更换';“未定义”的定义;,android,cordova,Android,Cordova,刚刚在Windows上安装了最新版本的Apache Cordova(7.0.1),Android SDK添加了Android平台,在尝试运行Android emulator时,它编译了所有内容,但随后显示: 无法读取未定义的属性“replace” 没有指示或任何其他信息来跟踪错误。在中找到了以下解决问题的答案: 跟踪到file/platforms/android/cordova/lib/emulator.js 第202行: var num=target.split(‘(API级别’).repla

刚刚在Windows上安装了最新版本的Apache Cordova(7.0.1),Android SDK添加了Android平台,在尝试运行Android emulator时,它编译了所有内容,但随后显示:

无法读取未定义的属性“replace”

没有指示或任何其他信息来跟踪错误。

在中找到了以下解决问题的答案:

跟踪到file/platforms/android/cordova/lib/emulator.js 第202行:

var num=target.split(‘(API级别’).replace(‘)’,‘)

将其替换为正则表达式搜索和提取:

var num=target.match(/\d+/)[0]


这周发生在我身上的事。 尝试将Android平台降级至6.0.0,直到爱奥尼亚团队解决此问题

命令:

cordova platform rm Android
cordova platform add Android@6.0.0 

设备信息

  • 视窗10
  • 离子3
命令

我使用ionic在Windows 10上运行了以下命令,但遇到了相同的问题:

ionic cordova模拟android

错误

终端中报告了以下错误:

BUILD SUCCESSFUL

Total time: 1.775 secs
Built the following apk(s):
        C:/ionic/quoteapp/platforms/android/build/outputs/apk/android-debug.apk
ANDROID_HOME=C:\Users\Arduino2\AppData\Local\Android\sdk
JAVA_HOME=C:\Program Files\java\jdk1.8.0_144
Error: Cannot read property 'replace' of undefined
修复

取代:

var num = target.split('(API level ')1.replace(')', '');

如上所述,这是有效的

爱奥尼亚项目中的文件位于以下目录中的爱奥尼亚应用程序文件夹中:/platforms/android/cordova/lib/emulator.js


我没有提出这个修复方案,只是想提供我得到的命令和错误,以帮助其他人。如果您不想修改emulator.js(Adrian的答案),在运行
cordova Simulate Android

@Hauke:答案中添加了链接之前,我可以通过手动启动Android虚拟设备来解决这个问题!报道:太棒了!知道如何调试它会很有趣。详细的输出没有多大用处。这是我在网上找到的唯一有效的解决方案。请注意,此修复程序不会传播到项目版本控制,因为它不会改变底层cordova android npm包。这不是一个离子问题,尽管在他们的论坛中找到了该解决方案。这是一个科尔多瓦问题。
var num = target.match(/\d+/)[0]